I am trying to save ssid string and read it after reloading sketch.
Step 1 : Write and Read in same sketch works well ->
#define EPROM_MEMORY_SIZE 512
int serverAccessSSIDAddressStart=1; int serverAccessSSIDAddressEnd=32;
void writeStringEEPROM(String s,int startAdress,int endAdress);
String readStringEEPROM(int startAdress,int endAdress);
void setup() {
Serial.begin(115200);
String Server_router_ssid ="A111111111111111111111111111111A";
Serial.println("Start Write");
EEPROM.begin(EPROM_MEMORY_SIZE);
writeStringEEPROM(Server_router_ssid,serverAccessSSIDAddressStart,serverAccessSSIDAddressEnd);
EEPROM.commit();
Serial.println("Write Done");
Serial.println("READ");
//EEPROM.begin(EPROM_MEMORY_SIZE);
String res = readStringEEPROM(serverAccessSSIDAddressStart,serverAccessSSIDAddressEnd);
Serial.println(res);
}
String readStringEEPROM(int startAdress,int endAdress){
String s;
for(int i=startAdress; i<=endAdress; i++){
char c = char(EEPROM.read(i));
s+=c;
}
return s;
}
void writeStringEEPROM(String s,int startAdress,int endAdress)
{
int stringLength=s.length();
for(int i=startAdress; i<=endAdress; i++){
int indexString=i-startAdress;
if(indexString<stringLength){
EEPROM.write(i,s[indexString]);
}else{
EEPROM.write(i,' ');
}
}
}
Output :
Start Write
Write Done
READ
A111111111111111111111111111111A
But Now when Upload this sketch :
void setup() {
Serial.begin(115200);
//String Server_router_ssid ="A111111111111111111111111111111A";
//Serial.println("Start Write");
//EEPROM.begin(EPROM_MEMORY_SIZE);
//writeStringEEPROM(Server_router_ssid,serverAccessSSIDAddressStart,serverAccessSSIDAddressEnd);
//EEPROM.commit();
//Serial.println("Write Done");
Serial.println("READ");
EEPROM.begin(EPROM_MEMORY_SIZE);
String res = readStringEEPROM(serverAccessSSIDAddressStart,serverAccessSSIDAddressEnd);
Serial.println(res);
}
I get this empty output ):
READ
Any problem in my code please ?
Should I use EEPROM.begin when only reading ?
When should I use EEPROM.end and when should I use EEPROM.commit ?