关于stm32使用flash保存数据的奇怪问题
大家好,我使用stm32f103c8t这款芯片,使用过程中我会将上位机发送过来的一些数据保存到flash中去,我的保存过程时这样的:1、将起始页定义为flash空间的第63页 #define PAGE_ADDR (0x08000000 + 63 * 1024)
2、需要保存的时候我会按照对flash解锁、擦除本页、写入数据、上锁的步骤进行数据写入
3、正常情况下不会对flash数据进行写入,只会读取
但我现在发现一个比较奇怪的问题:
在对STM32进行flash数据写入保存成功后,一段时间读出来都是正常的,但不知道某一时刻开始就保存到flash中的数据就突然没了,被复位了(这种情况并不一定会出现,偶尔发生),请问各位工程师能给一些建议吗?谢谢。
没有什么建议,程序问题,自己检查 你是重新保存时没有的?还是读的时候没有的?
如果是重新保存时数据消失了,那得看你擦除的模式是什么?chip erase,block erase ,sector erase擦除的区域是不同的,你再写入数据前应该有做擦除动作,如果写入的地址所在的块区有之前的数据,那么肯定会被擦除;
如果是读取过程中出现数据丢失,那可能需要看一下代码和硬件了 被复位?也就是说数据全部被擦除了?其次,怎么得出数据复位的,是直接读取了所有的flash查看的?
页:
[1]