也无晴丶 发表于 2020-9-8 16:48:40

stm32F4存在flash中的内容意外被更改?

每次上电判断扇区首字节是否为约定的特殊值:若不为特殊值则表示初次上电,写特殊值,写默认配置,


若为特殊值则表示已有参数,读取配置。
-------------------------------------------------------------------------------
问题现象:进行flash写,或者单纯通断DC供电,有的板子在重新上电时,有时候会变成默认配置
推测:扇区的首字节内容异常了,进入了初次上电的流程
请问这种现象的可能原因是啥,

lotushill 发表于 2020-9-9 08:56:32

是F4内部的flash,还是外挂的flash内容被更改?

也无晴丶 发表于 2020-9-9 09:38:29

lotushill 发表于 2020-9-9 08:56
是F4内部的flash,还是外挂的flash内容被更改?

内部的,我用了扇区8和11轮流使用,结果还是有这种现象

ts2000 发表于 2020-9-9 14:39:05

flash区域本身带读写保护,没可能有外部原因会更改内容,除非你的程序有问题吧。

发表于 2020-9-9 15:36:48

估计程序的问题,读取的内容不正确时,是不是重新初始化参数写进去了。一般被擦除掉是不会被恢复出来的。

也无晴丶 发表于 2020-9-9 15:58:26

lotushill 发表于 2020-9-9 08:56
是F4内部的flash,还是外挂的flash内容被更改?

内部的

也无晴丶 发表于 2020-9-9 16:07:35

安 发表于 2020-9-9 15:36
估计程序的问题,读取的内容不正确时,是不是重新初始化参数写进去了。一般被擦除掉是不会被恢复出来的。 ...

也考虑过这个可能,后来加上了失败时重复读取,还是一样。关键是概率性出现,正常的时候读写啥的都好使,出现问题的时候又看不到读出的内容与flash的实际内容,现在加了外部flash,等它出现就存下来看,但又不复现,所以辛苦大佬们看看有没有啥招,快点定位问题源

陌路夕颜 发表于 2020-9-9 21:19:03

1、你要先看一下是否写入成功
2、读取时候成功
3、看看程序逻辑是不是有漏的地方
在线调试或者用RTT打印都可以

jingdizhiyue 发表于 2020-9-15 17:40:19

可能是程序的原因 在不该写的地方写了,或者写错了地址,还有可能就是写入的数据是错的,可以在刚写完读回来验证一下

butterflyspring 发表于 2020-9-18 17:15:41

FLASH 改写本身就是条件比较严格,需要内部升压后才能改写。但是如果这时候出现断电,就可能造成改写错误或不成功。其次就是程序代码逻辑问题,造成内容不正确或者误动作,但一般概率很小。
页: [1]
查看完整版本: stm32F4存在flash中的内容意外被更改?