为了让数据不再掉电清零,百度一堆终于找到一个解决方案,调试一天,终于调试成功这个功能了。为了防止忘记(节约大家像我一样白忙活的时间)写个博客记录一下,首先打开.map文件。找不到的编译
成功后双击上图就会弹出来,如果没有就找到编译生成的文件夹,在hex文件下面,打开map文件,滑到最下面,可以看到程序所占内存有多大,如图
18840转化为16进制为4998,所以程序所占空间加上0x08000000等于0x08004998,数一数看看在第几页
之后,在没用到的空间里进行擦除和写入操作即可。
代码实现
1.给flash开锁
HAL_FLASH_Unlock();
2.进行擦除