标题: STC8芯片的EEPROM只能写入读取擦除 重写擦除一正片扇区 有没有写好的函数用 [打印本页]

作者: 夕口山关    时间: 2023-11-21 14:58
标题: STC8芯片的EEPROM只能写入读取擦除 重写擦除一正片扇区 有没有写好的函数用
STC8芯片的EEPROM只能写入读取擦除 重写擦除一正片扇区 有没有写好的函数用(先写到另一扇区 再擦除原先扇区 再把要修改的修改完再写回原来的扇区 再把另一扇区擦除)

作者: 电控mmbd    时间: 2023-11-21 16:28
这种操作不科学,一是会缩短FLASH寿命,二是增加了整个操作的时长,三是数据会有一定的风险。
作者: 123156fsadf    时间: 2023-11-21 16:41
电控mmbd 发表于 2023-11-21 16:28
这种操作不科学,一是会缩短FLASH寿命,二是增加了整个操作的时长,三是数据会有一定的风险。

确实,没必要这么搞。如果要存的数据比较短,就几十字节的话,可以循环存在一块空间里面,上电找最后存的记录就可以,存满了再擦除,写条新的记录就
作者: zhuls    时间: 2023-11-21 17:06
官方说能写10W次。一天10次,能写1W天,近30年。够了吗?
作者: 君工创    时间: 2023-11-21 20:08
这样搞三角恋不好吧。
作者: wulin    时间: 2023-11-21 21:34
将某扇区数据读到缓存,修改相关数据后,擦除原扇区,再将修改后的数据写入原扇区。
作者: 夕口山关    时间: 2023-11-22 10:52
wulin 发表于 2023-11-21 21:34
将某扇区数据读到缓存,修改相关数据后,擦除原扇区,再将修改后的数据写入原扇区。

缓存不够用了。。
作者: 夕口山关    时间: 2023-11-22 10:55
123156fsadf 发表于 2023-11-21 16:41
确实,没必要这么搞。如果要存的数据比较短,就几十字节的话,可以循环存在一块空间里面,上电找最后存的 ...

我也不确定存多少 但好像需要存1k左右字节
作者: npn    时间: 2023-11-22 11:20
电控mmbd 发表于 2023-11-21 16:28
这种操作不科学,一是会缩短FLASH寿命,二是增加了整个操作的时长,三是数据会有一定的风险。

使用 do{ ... } while();写进去再读出来比较以保证数据正确写入,电压过低不要对EEPROM执行写、擦除可能会失败。
作者: STC新未来    时间: 2023-11-22 14:53
楼主好,可参考他们官方STC-ISP(6.92G)上的范例程序


做以下修改


这个是单字节的写入和扇区的擦除,可以直接一个for把一个扇区的字节都挪到另一个扇区,在擦除这个扇区就好了
如果还有疑问可去他们STCAI官方咨询

作者: chxelc    时间: 2023-11-22 15:29
感觉更麻烦,没有优势。
作者: 夕口山关    时间: 2023-12-2 15:36
STC新未来 发表于 2023-11-22 14:53
楼主好,可参考他们官方STC-ISP(6.92G)上的范例程序

好 谢谢
作者: 大漠落日    时间: 2023-12-2 22:01
不常改动的可以用,经常修改的数据,还是用片外的存储器吧。
作者: 清风皓月抚心绕    时间: 2023-12-4 14:46
参考以下蓝桥杯的源码,里面有写好的底层函数




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1