折翼的信鸽 发表于 2020-2-18 15:11:31

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:08

已解决

ldptest 发表于 2020-2-19 10:29:03

折翼的信鸽 发表于 2020-2-19 08:42
已解决

怎么解决的?为以后遇到同样问题的兄弟留下一个思路。
页: [1]
查看完整版本: STM32G030 flash写存