首页 > 解决方案 > nodemcu - 写入内存中任意位置的问题

问题描述

来自 esp8266 文档:

您需要在开始读取或写入之前调用 EEPROM.begin(size),size 是您要使用的字节数。大小可以在 4 到 4096 字节之间。

当起始地址不是 0 而是某个 xx 地址时,我在读/写内存时遇到问题,必须编写小测试程序来检查它。

第一个代码...

EEPROM.begin(16);
for (int i = 0; i < 16; i++)
{
    EEPROM.write(i, i);
}
EEPROM.commit();
EEPROM.end();         

还行吧。一切都写对了。

但是如果我改变起始地址……</p>

EEPROM.begin(20);
for (int i = 0; i < 20; i++)
{
    EEPROM.write(i+16, i);
}
EEPROM.commit();
EEPROM.end();        

它只写入前 4 个字节,因为在开始时我请求了 20 个字节。

我的问题是:这是正常的还是错误的?在文档状态

size 是您要使用的字节数

所以如果我只想使用随机地址中的 20 个字节,我应该写EEPROM.begin(20);吗?

如果 begin 方法的最大数量为 4096,如何从地址 5000 读取不是错误?

标签: nodemcuarduino-esp8266

解决方案


推荐阅读