2017-02-21 4 views
-2

Ich schreibe die Daten in Eeprom von Nodemcu ESP8266 12e, aber es ist ein Fehler beim Schreiben von Daten. Nach dem Neustart der Platine geht der Wert wieder verloren, nicht lange speichern. helfen, dieses Problem zu lösen. Wenn ich die Daten in EEPROM an Bord schreibe, schreiben die Daten in eeprom, aber nach dem Neustart der Karte wird der Wert verloren gehen.Fehler beim Schreiben von Daten in Eeprom in Nodemcu

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; 
    } 

Antwort

0

So hat das ESP8266 eigentlich kein EEPROM. Die Autoren des Arduino SDK zeichnen stattdessen einen kleinen Flash-Abschnitt (die tatsächliche Größe finden Sie in den Linker-Skripts) für das virtuelle EEPROM.

Beim Aufruf EEPROM.write(addr, x) werden die Daten in einer Schattenkopie des virtuellen EEPROM gespeichert, aber nicht im Flash gespeichert, bis EEPROM.commit(); aufgerufen wird.

Verwandte Themen