【问题标题】:Why is the EEPROM of my ESP8266 not working?为什么我的 ESP8266 的 EEPROM 不工作?
【发布时间】:2021-09-25 01:54:56
【问题描述】:

我需要将一些值保存到我的 esp 8266 上的 eeprom 中,但它不起作用。当我尝试对 EEPROM.commit() 进行一些写入时,我收到错误“错误!EEPROM 提交失败”。我用自己的代码对其进行了测试,但它甚至不适用于 EEPROM 库中的示例。我有多个 ESP8266MOD 并用其中一些进行了测试,但没有一个工作。有人有想法吗?

如果您需要其他信息,我会告诉您

【问题讨论】:

标签: arduino arduino-esp8266 eeprom


【解决方案1】:

正如我们在 cmets 中所讨论的,它不起作用,因为 ESP8266 没有 EEPROM,您可以选择使用 Flash 来模拟 EEPROM。

由于我没有定期使用 ESP8266,因此我没有进行彻底的研究,但尝试了 ESP_EEPROM 库,它似乎运行良好,这是我刚刚测试的代码:

#include <ESP_EEPROM.h>

void setup() {
  Serial.begin(115200);
  while(!Serial);
  EEPROM.begin(16); // looks like 16 bytes is the minimum
  EEPROM.put(0, 1234); // first parameter sets the position in the buffer, second the value
  boolean res = EEPROM.commit();
  Serial.println(res); // should print 1 (true) if commit worked as expected
  int myVar;
  EEPROM.get(0, myVar);
  Serial.println(myVar);
}


void loop() {
}

【讨论】:

  • 好的,非常感谢!很抱歉我现在无法测试它,但我会尝试明天执行它。明天我也会在这个堆栈溢出问题上给你一个答案
  • 非常感谢!我试过了,它就像一个魅力。我有最后一个问题,不知道你能不能回答我:我现在有多少字节空间?在我看来,它应该不仅仅是最初的 eeprom 512 b。或者不是吗?图书馆只给你一个百分比
  • 库中有非常好的信息,我建议您阅读它,并且正如您将看到的,您必须小心分配的大小(应该非常小)和提交的次数在设备生命周期内(应该是最小的,否则它会杀死闪存):github.com/jwrw/ESP_EEPROM/blob/master/src/ESP_EEPROM.cpp
  • 非常感谢!我希望有一天我能帮助你
猜你喜欢
  • 2014-05-17
  • 2017-09-20
  • 2012-04-14
  • 2016-09-15
  • 2012-02-14
  • 2012-08-10
  • 2013-07-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多