2017-02-21 22 views
-2

我正在將數據寫入nodemcu esp8266 12e的eeprom中,但它們在寫入數據時出錯。重新啓動電路板後,該值再次丟失,不能存儲很長時間。有助於解決這個問題。 當我在eeprom上寫入數據時,數據在eeprom中寫入,但在重新啓動電路板後,數值將丟失。在Nodemcu中寫入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; 
    } 

回答

0

因此,ESP8266實際上沒有EEPROM。 Arduino SDK的作者將映射出一小段閃存(您可以在鏈接器腳本中找到實際大小),以用於虛擬EEPROM。

當您撥打EEPROM.write(addr, x)時,它將數據存儲在虛擬EEPROM的卷影副本中,但不會將其存儲在閃存中,直到調用EEPROM.commit();