Нужно сохранить строки в EEPROM
Написал 2 функции
write_string_EEPROM (20,"string");
Serial1.println (read_string_EEPROM (20));
Но почему то они не работают. В сериал порт вываливается какой то мусор. Что я делаю не так?
Написал 2 функции
Код:
void write_string_EEPROM (int Addr,char *Str) {
int length=String(Str).length()+1;
EEPROM.write(Addr,length);
delay(50);
for (int j=1; j <=length ; j++) {
byte hi = highByte(Str[j-1]);
byte low = lowByte(Str[j-1]);
EEPROM.write(Addr+j,hi);
delay (50);
EEPROM.write(Addr+j+64,low);
delay (50);
}
EEPROM.commit();
}
char *read_string_EEPROM (int Addr) {
int length= EEPROM.read(Addr);
char buf[length+1];
for (int j=1; j <=length ; j++) {
buf[j-1] = word(EEPROM.read(Addr+j),EEPROM.read(Addr+j+64));;
}
buff[length+1] = '\0';
return buf;
}
Serial1.println (read_string_EEPROM (20));
Но почему то они не работают. В сериал порт вываливается какой то мусор. Что я делаю не так?