stm32 FLASH用于数据存储

2019-07-20 13:53发布

FLASH 模仿EEPROM的用法,在10扇区用于存储数据。在程序运行过程中第一次存储数据后,成功读出。 但是当第二次继续往下写,(地址偏移),进行存储数据时,再次读写,读出的全是FFFF,8位数据也就是255。说明第二次存储时的数据没有被写入、?  这是FLASH的特性所致,还是程序上有问题。
还有一个特别重要的问题,用的写程序段中屏蔽了原子哥程序中的清除操作,否则二次写入数据将出现死机。这里也是一个疑问?FLASH写入数据前不论如何都要整个扇区擦除吗?
附上程序和图。求大家帮忙解答。如果FLASH实现不了在程序运行中多次存储数据这个功能,那么有什么其他的好办法吗? 谢谢大家,希望大家能帮忙!!!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
zhangfanFZ
1楼-- · 2019-07-20 16:59
 精彩回答 2  元偷偷看……
rosin
2楼-- · 2019-07-20 19:58
片内FLASH写入数据时,如果目标位置非0xFF时,会先擦出整个扇区,第一次写成功是因为待写入位置没有操作过,可以直接写入数据。建议:如果写入数据较多,可以写一个初始化函数,每次将所有数据都重新写入一遍。试试看。

一周热门 更多>