Попытался записать и считать с eeprom, сначала читались какие то данные но не те что записал, а потом читаются только нули, то есть ничего не пишется Использовал стандартный пример eeprom из пакета esp8266 Пробовал перед каждым чтением и записью писать eeprom.begin, не помогло И где у esp находится eeprom в чипе или выделено на внешней флеш? И сколько она вообще
Читал уже некоторое время Но пока не получилось Так как не сработал стандартный пример думал может есть какая хитрость...
#include <EEPROM.h> ............ struct MyObject { int Flag_m0; int Hu_max1; int Te_max2; int Il_max3; int Hu_min4; int Te_min5; int Il_min6; int Watering7; int Stop_p8; int Night9; }; MyObject customVar; ............. void setup() { Serial.begin(9600); EEPROM.begin(512); Adress += sizeof(int); EEPROM.get(0, customVar.Flag_m0); if(customVar.Flag_m0 != 1) { EEPROM.put(0, 1); customVar.Hu_max1=hu_max; EEPROM.put(Adress, customVar.Hu_max1); customVar.Te_max2=te_max; EEPROM.put(Adress*2, customVar.Te_max2); customVar.Il_max3=il_max; EEPROM.put(Adress*3, customVar.Il_max3); customVar.Hu_min4=hu_min; EEPROM.put(Adress*4, customVar.Hu_min4); customVar.Te_min5=te_min; EEPROM.put(Adress*5, customVar.Te_min5); customVar.Il_min6=il_min; EEPROM.put(Adress*6, customVar.Il_min6); customVar.Watering7=watering; EEPROM.put(Adress*7, customVar.Watering7); customVar.Stop_p8=stop_p; EEPROM.put(Adress*8, customVar.Stop_p8); customVar.Night9=Night; EEPROM.put(Adress*9, customVar.Night9); EEPROM.commit(); //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! } else { EEPROM.get(Adress, customVar.Hu_max1); hu_max=customVar.Hu_max1; EEPROM.get(Adress*2, customVar.Te_max2); te_max=customVar.Te_max2; EEPROM.get(Adress*3, customVar.Il_max3); il_max=customVar.Il_max3; EEPROM.get(Adress*4, customVar.Hu_min4); hu_min=customVar.Hu_min4; EEPROM.get(Adress*5, customVar.Te_min5); te_min=customVar.Te_min5; EEPROM.get(Adress*6, customVar.Il_min6); il_min=customVar.Il_min6; EEPROM.get(Adress*7, customVar.Watering7); watering=customVar.Watering7; EEPROM.get(Adress*8, customVar.Stop_p8); stop_p=customVar.Stop_p8; EEPROM.get(Adress*9, customVar.Night9); Night=customVar.Night9; } ...... } void loop() { ..... EEPROM.put(Adress*7, watering); EEPROM.commit(); //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! }
спасибо за ответы, разобрался уже, просто компилировал скетч как для 4 мб , а записивал с помощью NODEMCU programmer'om как для 8 мб... в esp у меня впаяна память на 8 мб