【求助】STM32F0在CubeMX环境使用HAL接口编程内部Flash流程

2019-12-21 12:15发布

最近在搞内部flash读写,我确认写保护是关闭的。流程如下
HAL_FLASH_Unlock();
FLASH_PageErase(CONFIG_ADDR);
HAL_FLASH_Program(FLASH_TYPEPROGRAM_WORD, CONFIG_ADDR, *(int*)&cfgfile);
HAL_FLASH_Lock();

现在发现擦除是没问题的,就是program没反应。我单步跟下去也确实执行到了最底层
  /* Write data in the address */
  *(__IO uint16_t*)Address = Data;

哪位有stm32f0系列cubeMX HAL方式的flash读写经验指点一下。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
4条回答
wxl
2019-12-21 13:59
到今天有72人看过,但是0个回复。。。
不过我还是找到问题了!!
是因为用错了页擦除API,擦除page之后没有clear PEG位 导致PG位写不成功!!
在此告诫各位朋友,CubeMX的HAL库要用HAL_FLASHEx_Erase来擦除Page。
最后总结流程如下:
HAL_FLASH_Unlock();
HAL_FLASHEx_Erase();
HAL_FLASH_Program();
HAL_FLASH_Lock();
结贴!

一周热门 更多>