2017-02-21 46 views
-2

Я пишу данные в eeprom nodemcu esp8266 12e, но их ошибка в записи данных. после перезапуска платы значение теряется снова, а не сохраняется надолго. помогите решить эту проблему. Когда я пишу данные в eeprom на борту, данные записываются в eeprom, но после перезапуска платы значение будет потеряно.Ошибка при записи данных в eeprom в 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; 
    } 

ответ

0

Таким образом, у ESP8266 фактически нет EEPROM. Авторы Arduino SDK вместо этого отображают небольшой фрагмент флэш-памяти (вы можете найти фактический размер в сценариях компоновщика), который будет использоваться для виртуальной EEPROM.

Когда вы вызываете EEPROM.write(addr, x), он хранит данные в теневой копии виртуальной EEPROM, но не сохраняет их во флэш-памяти до тех пор, пока не вызывается EEPROM.commit();.

 Смежные вопросы

  • Нет связанных вопросов^_^