在Nodemcu中在eeprom中写入数据时出错

时间:2017-02-21 05:39:10

标签: arduino esp8266 nodemcu eeprom arduino-esp8266

我在nodemcu esp8266 12e的eeprom中写入数据,但它们在写入数据时出错。重新启动电路板后,该值再次丢失,不会存储很长时间。有助于解决这个问题。 当我在eeprom中写入数据时,数据是在eeprom中写入的,但在重新启动电路板后,该值将丢失。

  memcpy (msg,message.payload,message.payloadlen);
  Serial.print(msg);
  int compare = 1;
  if (0==(compare=(strncmp("ON",msg,4)))) {
    val = 1 ;
    digitalWrite(LED,HIGH);
    EEPROM.write(addr,val);
    compare = 1;
  }
  else if (0==(compare=(strncmp("OFF",msg,4)))) {
    val = 0 ;
    digitalWrite(LED,LOW);
    EEPROM.write(addr,val);
    compare = 1;
  } 

1 个答案:

答案 0 :(得分:0)

因此,ESP8266实际上没有EEPROM。 Arduino SDK的作者改为绘制一小部分闪存(您可以在链接器脚本中找到实际大小)来用于虚拟EEPROM。

当您调用EEPROM.write(addr, x)时,它会将数据存储在虚拟EEPROM的卷影副本中,但在调用EEPROM.commit();之前不会将其存储在闪存中。