nodemcu - 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 读取不是错误?
解决方案
推荐阅读
- java - 我不能在 Java 11 中使用 @PostConstruct 和 @PostDestroy
- php - 无法使用 php 删除 memcache?但是可以用telnet
- angular - 使用 node 和 @angular/cli 构建的应用程序可以离线运行吗?
- jquery - html 数据属性的 attr() 返回 undefined
- sql-server - SQL Server 如何获取货币类型的小数位数?
- android - android Room获取blob图像并显示
- vba - 如何将变量分配给具有部分已知名称的 Excel 工作表
- graph-theory - 如何证明关系属性适用于该关系的传递闭包?
- ios - 如何使用 CAShapLayer 和自动布局约束绘制圆形进度条
- php - 在 laravel 中插入数据并登录