51单片机内部的EEPROM存储是否会丢失

2020-01-27 11:24发布

STC51单片机内部eeprom,可不可以这样使用
首先将使用的扇区连续擦除,再向内部扇区编写数据,每次写十个字节,写完十个字节不擦除扇区,第二次接着第一次的位置 ,继续写直到第一个扇区写满了  再去写第二个扇区,
单片机内部的EEPROM这样使用会不会不稳定 ,会不会丢失数据?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
18条回答
jiaohaitao
1楼-- · 2020-01-28 04:28
609178658 发表于 2013-8-23 13:34
谢谢解答
程序写好了 ,官方的手册我也看了  是把每次修改的数据放在同一个扇区,我要每次存10个字节,那 ...

如果你要覆盖以前的数据,这个必须整个扇区擦出。
如果你接着原来的数据顺序往后写,就没必要了
如果数据比较多,建议用stc12c5a32s2这款,eeprom有28k
609178658
2楼-- · 2020-01-28 04:40
 精彩回答 2  元偷偷看……
609178658
3楼-- · 2020-01-28 09:32
jiaohaitao 发表于 2013-8-23 13:41
如果你要覆盖以前的数据,这个必须整个扇区擦出。
如果你接着原来的数据顺序往后写,就没必要了
如果数据 ...

我就是接着原来的数据继续写,这样可以么 我用的是89c54RD+   有45K  够用了
手册上说每次修改的数据放在同一扇区,这句话什么意思,是每次写都要擦除扇区么
jiaohaitao
4楼-- · 2020-01-28 11:57
你说的是手册上的建议:
1.同一次修改的数据放在同一扇区中,单独修改的数据放在另外的扇区,就不须读出保护。
2.如果一个扇区只用一个字节,那就是真正的EEPROM,STC单片机的Data Flash比外部EEPROM要快很多,
读一个字节/编程一个字节/擦除一个扇区大概是10uS/60uS/10mS。
3.如果同一个扇区中存放了一个以上的字节,某次只需要修改其中的一个字节或一部分字节时,则另外的
不需要修改的数据须先读出放在STC 单片机的RAM中,然后擦除整个扇区,再将需要保留的数据和需修改
的数据一并写回该扇区中。这时每个扇区使用的字节数是使用的越少越方便(不需读出一大堆需保留数据)。
我的理解:
修改频率相同的数据放同一个扇区,这样比较方便,改一个字节要擦出整个扇区,改多个也要擦。这样
性价比高,哈哈,不知老妖是不是要描述的这个意思
609178658
5楼-- · 2020-01-28 14:42
jiaohaitao 发表于 2013-8-23 13:58
你说的是手册上的建议:
1.同一次修改的数据放在同一扇区中,单独修改的数据放在另外的扇区,就不须读出保护 ...

我就是想知道我那么做可以么,如果写之前要把之前写的读出来在一起写,会不会很麻烦,如果我之前已经写了 1000个字节,
我继续写的时候,要把那100个字节读出来存到RAM,再一起保存 这么做麻烦,
可不可以顺序保存,不覆盖,懂我说的意思?我说明白没?
还有”老妖“是什么意思?
wangqing_gxu
6楼-- · 2020-01-28 18:16
你的方法是可以的,但很容易出错.
每次接在后面写,必须保证每次的偏移量都对,但单片机连续运行几个月上年,还有各种干扰,用一个变量保存偏移量出错的可能是有的.而一但出错,后面再写多少数据都是白搭.

一周热门 更多>