STS_P2/PeopleCount(VL53L1A2)/Core/Src/user_flash.c

40 lines
897 B
C

#include "main.h"
#include "stm32f4xx_hal.h"
#include "user_flash.h"
uint32_t Save_Config_Flash_Addr = 0x0801F800;
uint8_t save_config(uint8_t config)
{
uint8_t status = HAL_ERROR;
FLASH_EraseInitTypeDef My_Flash;
// __set_PRIMASK(1);
HAL_FLASH_Unlock();
My_Flash.TypeErase = FLASH_TYPEERASE_PAGES;
My_Flash.PageAddress = Save_Config_Flash_Addr;
My_Flash.NbPages = 1;
uint32_t PageError = 0;
status = HAL_FLASHEx_Erase(&My_Flash, &PageError);
if(status != HAL_OK)
{
return status;
}
uint16_t Write_Flash_Data = config;
status = HAL_FLASH_Program(FLASH_TYPEPROGRAM_HALFWORD, Save_Config_Flash_Addr, Write_Flash_Data);
HAL_FLASH_Lock();
// __set_PRIMASK(0);
return status;
}
uint8_t read_config(void)
{
uint8_t data = *(__IO uint8_t*)( Save_Config_Flash_Addr );
return data;
}