STM32G030 flash写存
使用cube配置的hal库来写,由于G030没有eeprom,所以想使用flash写存来代替,常规的flash写存1)解锁flash
2)flash页擦除
3)写flash数据
4)锁存flash
测试运行仅写存成功一次,之后无法在此写存,发现异常均卡在页擦除失败,无法对flash写存。在此发帖寻求答案,谢谢。
下面是牵扯到的程序,
#define APPL_MAGIC_VALUE (uint32_t)0x08006000
/* NVM区域标记 */
#define NVM_MODE_VALUE_OFFSET APPL_MAGIC_VALUE
FLASH_EraseInitTypeDef My_Flash;
__disable_irq(); //
HAL_FLASH_Unlock();
My_Flash.TypeErase = FLASH_TYPEERASE_PAGES;//标明Flash执行页面只做擦除操作
My_Flash.Page = APPL_MAGIC_VALUE; //声明要擦除的地址
My_Flash.NbPages = 1;
uint32_t PageError = 0;
//FLASH_PageErase(APPL_MAGIC_VALUE);
asd=HAL_FLASHEx_Erase(&My_Flash, &PageError);
HAL_FLASH_Lock();
HAL_FLASH_Unlock();
HAL_FLASH_Program(FLASH_TYPEPROGRAM_DOUBLEWORD,APPL_MAGIC_VALUE, Light_Change_Flag);
HAL_FLASH_Lock();
__enable_irq();
已解决 折翼的信鸽 发表于 2020-2-19 08:42
已解决
怎么解决的?为以后遇到同样问题的兄弟留下一个思路。
页:
[1]