最近在搞内部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读写经验指点一下。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
不过我还是找到问题了!!
是因为用错了页擦除API,擦除page之后没有clear PEG位 导致PG位写不成功!!
在此告诫各位朋友,CubeMX的HAL库要用HAL_FLASHEx_Erase来擦除Page。
最后总结流程如下:
HAL_FLASH_Unlock();
HAL_FLASHEx_Erase();
HAL_FLASH_Program();
HAL_FLASH_Lock();
结贴!
一周热门 更多>