【求助】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
1楼-- · 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();
结贴!
LICHANGAN726
2楼-- · 2019-12-21 15:01
才看到帖子,之前也犯这样错误,调了好几天
nydxsydt0
3楼-- · 2019-12-21 20:46
 精彩回答 2  元偷偷看……
cnshibo
4楼-- · 2019-12-21 21:32
感谢分享,少走弯路~

一周热门 更多>