Добрый день! Хотел поиграться с EEPROM но, возникла проблема с чтением с eeprom. Код (C++): #include <EEPROM.h> //#include "ESP8266WiFi.h" void setup() { String ssid = "my_ssid"; String pass = "my_pass"; Serial.begin(9600); EEPROM.begin(512); delay(100); //WiFi.mode(WIFI_STA); //WiFi.disconnect(); delay(100); Serial.println("EEPROM START"); EEPROM.write(0, ssid.length()); delay(40); int from = 1; for (int i; i < ssid.length(); i++) { EEPROM.write(from + i, ssid[i]); delay(40); } from = ssid.length() + 1; EEPROM.write(from, pass.length()); for (int i; i < pass.length(); i++) { EEPROM.write(from + i, pass[i]); } if (EEPROM.commit()) { Serial.println("Succesfuly eeprom updated"); } delay(500); Serial.println("Start reading"); String data; for (byte i; i < pass.length()+ssid.length()+2; i++) { data += (char)EEPROM.read(i); } Serial.println(data); Serial.println(data.length()); /* String data; for (byte i; i < 8; i++) { data += (char)EEPROM.read(i); } Serial.println(data); Serial.println(data.length()); */ Serial.println("end eeprom"); //EEPROM.end(); } void loop() { } На что получаю ответ в ком порт: 16:09:13.706 -> ⸮txW⸮X6d⸮$⸮p⸮d⸮EEPROM START 16:09:14.081 -> Succesfuly eeprom updated 16:09:14.565 -> Start reading 16:09:14.565 -> 16:09:14.565 -> 0 16:09:14.565 -> end eeprom Скажу что первый раз работаю с eeprom. Так что не знаю всех подводных камней. Заранее спасибо
Проблема найдена, такой код уже рабочий: (здесь запись идет только ssid введенной вами в переменной ) Код (C++): #include <EEPROM.h> //#include "ESP8266WiFi.h" void setup() { String ssid = "my_ssid"; String pass = "my_password"; Serial.begin(9600); EEPROM.begin(512); delay(100); int ssid_len = ssid.length() + 1; int pass_len = pass.length() + 1; char ssid_array[ssid_len]; char pass_array[pass_len]; ssid.toCharArray(ssid_array, ssid_len); pass.toCharArray(pass_array, pass_len); Serial.println(); Serial.println("SSID write...."); for (int i=0; i < sizeof(ssid_array); i++) { Serial.println((char)ssid_array[i]); delay(100); EEPROM.write(i, ssid_array[i]); delay(100); } Serial.println("SSID writed!"); if (EEPROM.commit()) { delay(500); Serial.println("EEPROM commited!"); } delay(100); EEPROM.end(); delay(500); EEPROM.begin(512); delay(500); for (byte i=0; i < 9; i++) { Serial.print((char) EEPROM.read(i)); } Serial.println("End"); } void loop() { }