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