8266的EEPROM运行逻辑及操作方法

虽然都知道8266的EEPROM的运用是很简单的事,简单到看了例程后几分钟就能用了。但是就是这么简单由于理解力的问题,以及因为简单 所有资料反而说得太笼统,容易引起使用者的误会,因此经过昨日出现的对EEPROM使用上的错误的研究,终于算是搞明白了EEPROM的运行逻辑了。发现很多人使用上的困惑究其原因还是因为对这个逻辑的不解造成的。
EEPROM的原文这里就不多说了,有兴趣的到这个链接上去看。这里只讲我的理解:
1、8266的EEPROM是模拟的,每次要使用时是要调入FLASH里的。
2、EEPROM只有一个,所有程序都可以用,在Blinker里,Blinker会用到多段,详见下图。所以我们在开发时只能用4096以内的其它段。一般我们开发的时候只会存一些标识、WIFI的帐号和密码,总共也就用到96个字节,所以还算够用。
在这里插入图片描述

3、和EEPROM密切相关的常用命令只有这么几个

  ```cpp
  EEPROM.begin(size)
  EEPROM.write(addr,val)
  EEPROM.read(addr)
  EEPROM.end()  

4、内存块每次用EEPROM.begin(size)读入缓存里,读入的大小由size决定,该数值范围为(4-4096),每次读入的这个EEPROM块都是从ROM的0地址开始的。比如,你的size是1024字节,那么读入的EEROM的块地址是从0-1023这个块。所以如果就你自已用时,你爱读多少就读多少,每次都从0地址开始用。
5、如果同时有多个程序用这个内存块,那就要注意了。比如Blinker提示,占用了0-1269 和 1536-2431。这样,我们在使用时要避开。如下

 EEPROM.begin(4000);
 EEPROM.write(1280,val);
 EEPROM.end(); 

这里的4000,指的是从0开始读到4000地址位的ROM进缓存。1280指从0开始到1280地址位写入,最后end()把缓存内容提交,真正写到物理介质中。

  • 7
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

骑牛唱剧本

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值