操作eepROM时单片机掉电问题

2020-01-26 12:54发布

最近用的STC15F204EA,本来程序会在eepROM里保存数据的,测试的时候发现断几次电之后会有程序无法运行的情况,会不会是eepROM没有操作完成就返回导致单片机程序一直卡在eepROM中无法重新开始运行?
如果是这样的话,除了使用掉电检测电路,还有其他方法避免这个问题吗?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
29条回答
zyw19987
2020-01-28 10:47
本帖最后由 zyw19987 于 2013-10-11 23:57 编辑

说说真正的数据管理方法。
把你要写的数据定义成一个块(可以用结构体来表示)块的最后两个字节是这个块所有数据的CRC校验结果,定义另外一个块叫备份区,每次写数据时是先写备份块,然后写数据块。记住是整块写,上电时看数据块数据是否正常(通过对块数据进行校验后和块的最后两字节比较)如果正常就往下执行,如果不正常就将备份块拷贝到数据块。保证系统不会死,不会乱跑。
分析:1、保存数据时写备份块时断电,从新上电时原来的数据块任然是之前的,系统不会乱。
       2、保存数据是备份块写完了,写数据块时断电,从新上电时会将备份块拷贝到数据块中,保证系统参数正常。
缺点,多一个备份块,写备份块断电的情况下,只能保证数据是上次的数据。
优点,不管何时出现断电,系统参数永远都会是合法的,不会出现非法数据而导致系统乱判断。

一周热门 更多>