STM32
直播中

李猛

7年用户 1517经验值
私信 关注
[问答]

STM32F429ZGT6 flash数据被清零的原因有哪些?

芯片:STM32F429ZGT6问题:flash数据貌似被清零了  还是读出的时候就读错了 不确定
我固定在0x08010000地址开始开辟了一个64k大小的数组 用来存数据    这个地址只有在通信的时候才会置位标志位,把数据写到0x1000 0000 地址上 , 然后在掉电的时候会把0x10000000的数据写入到0x08010000这个地址(已确定掉电时间足够把数据写完,而且写过之后下次不会再触发写入只有通信的时候操作了才会写入),上电的时候会把0x08010000地址数据再次读到0x10000000 地址上
现在在客户现场用了好几个月都很正常,然后这几天出现前面有100多个字节被置为0了  现在没有任何找不到原因 ,问题很难复现, 想请论坛各位大佬们帮忙分析分析是什么原因造成的

回帖(2)

康大争

2024-4-8 09:45:41
FLASH写入是有KEY的
考虑换个思路,0x10000000前面部分是不是会被写成0
然后在写FLASH的时候自然把0带进去了
举报

斗地主之神

2024-4-8 17:25:04
STM32F429ZGT6 flash数据被清零的原因可能有以下几个可能原因:

1. 电源问题:如果芯片的电源供应不稳定,可能导致flash数据被清零。这可能是由于电源质量不佳、连接不稳定、电源波动等问题引起的。

2. 代码问题:在写入flash数据时,可能存在代码逻辑错误或写入操作不完整的情况,导致数据未正确写入flash。需要检查写入操作的代码,确保正确地进行写入操作并验证写入是否成功。

3. 超出flash寿命:STM32F429ZGT6芯片的flash存储器有一定的寿命,每个flash单元都有一定的擦除次数。如果在使用中频繁进行flash数据的写入和擦除操作,并且超过了flash的寿命限制,可能导致flash数据被清零或出现其他错误。

4. 脉冲冲击:如果系统环境存在较强的电磁脉冲干扰或静电放电等问题,可能会导致芯片内flash数据被清零或发生错误。

对于该问题,可以尝试以下解决方法:

1. 检查电源供应是否稳定,确保芯片正常工作的电源质量。

2. 检查写入flash数据的代码逻辑和操作流程,确保写入操作正确无误,并进行写入成功的验证。

3. 避免频繁进行flash数据的写入和擦除操作,降低flash寿命的消耗。

4. 在系统设计中考虑防静电和抗干扰的措施,减少外界环境对芯片的影响。

如果问题仍然存在,可能需要进一步调试和分析具体的情况。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分