我们最近用mm32f3277的flash,mm32f3277的flash有512K的空间:128个扇区,每个扇区有四页,每页有1K。
图一 mm32f3277的flash
我们写入flash用的是片内FLASH存储器,片内FLASH存储器的地址是0x08000000H - 0x0807FFFF 我们使用逐飞的flash库函数成功的存进去数据,但是我们在存完数据烧写新程序的时候发现我们的数据突然消失了。

图二 程序烧写过程中
然后我就去群里询问大佬,终于找到了答案。


图三 我询问的大佬的聊天记录
我们发现只要在keil里面设置一下flash的擦除功能就能解决自己存储的flash数据被擦除的问题

图四 keil里面的flash下载设置
只要在start和size设置好程序擦除的范围就可以避免自己的存储的flash数据被误擦。

图五 我随便存的数据(本来想存储经纬度的但是室内GPS没有信号)
博客讲述了在使用STM32F3277芯片时遇到的Flash数据保存问题。在使用片内Flash存储数据并烧录新程序后,数据意外消失。解决方案是通过在Keil的Flash下载设置中指定擦除范围,避免覆盖已存储的数据。设置正确后,可以成功保存并保护用户数据不被擦除。
697





