• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

не все данные записываются в EEPROM

mishgan

Member
Пишу в EEPROM функцией.
Код:
void save() {
String ssid=server.arg("ssid");
String pass=server.arg("pass");
int  tip =server.arg("tip").toInt(); //значения 0, 1 или 2
Serial.println(tip); // значение выводится
EEPROM.begin (256);
EEPROM.write(102,tip); 
sch=String(ssid).length();
EEPROM.write(130 , sch);
for(byte i = 0; i < sch; i++) { EEPROM.write(131+i*2, highByte(ssid[i]));  EEPROM.write(131+i*2+1, lowByte(ssid[i]));}
sch=String(pass).length();
EEPROM.write(180, sch); 
for(byte i = 0; i < sch; i++) { EEPROM.write(181+i*2, highByte(pass[i]));  EEPROM.write(181+i*2+1, lowByte(pass[i]));}
EEPROM.end();
delay(100);
server.send(200, "text/plain","ok");
}
и пытаюсь получить эти значения при запуске

Код:
EEPROM.begin (256);
....
rejrab=EEPROM.read(102);
Serial.println(rejrab); // значение не отображается
....
sch = EEPROM.read(130);
for(byte i = 0; i < sch; i++) {
hi  = EEPROM.read(131+i*2);   
low = EEPROM.read(131+i*2+1);
ssid[i]= word(hi, low);}
ssid[sch] = '\x0';
Serial.println(ssid); // ssid выводится 
sch = EEPROM.read(180);
for(byte i = 0; i < sch; i++) {
hi  = EEPROM.read(181+i*2);   
low = EEPROM.read(181+i*2+1);
pass[i] = word(hi, low);}
pass[sch] = '\x0';
Serial.println(pass); // значение выводится
EEPROM.end();
При старте Serial.println(rejrab); не выводит никакого значения. Serial.println(ssid); и Serial.println(pass); выводят все как надо. Пробовал менять адреса... не помогает. В чем может быть проблема?
 

Atom

Member
не вижу нигде EEPROM.commit();

ps: на самом деле оба параметра записываются фреймворком независимо от вашего желания в другом месте и нет особой нужды их дублировать.
 

mishgan

Member
не вижу нигде EEPROM.commit();

ps: на самом деле оба параметра записываются фреймворком независимо от вашего желания в другом месте и нет особой нужды их дублировать.
есть EEPROM.end() которые тоже записывает. О каких 2х параметрах идет речь?
 

Atom

Member
ssid и password.

по топику: commit() попробуйте вставить. я тоже долго грыз esp, но вразных чипах с разными sdk все идет по разному. И именно commit() был мне в помощь.
 

Atom

Member
бывает. но еще бы хорошо написать тут в чем ошибка была. Чтоб это не просто чат фриков был, а знак "здесь лежат грабли" и другой человек нашел и радовался.
 
Сверху Снизу