//读
read_temp = *(__IO uint32_t*)value_address;
//写
static void flash_write(uint32_t address, uint32_t data)
{
//1、解锁FLASH
HAL_FLASH_Unlock();
//2、擦除FLASH
//初始化FLASH_EraseInitTypeDef
FLASH_EraseInitTypeDef f;
f.TypeErase = FLASH_TYPEERASE_PAGES;
f.PageAddress = address;
f.NbPages = 1;
//设置PageError
uint32_t PageError = 0;
//调用擦除函数
HAL_FLASHEx_Erase(&f, &PageError);
//3、对FLASH烧写
HAL_FLASH_Program(TYPEPROGRAM_WORD, address, data);
//4、锁住FLASH
HAL_FLASH_Lock();
}