Я хочу записать текст во флэш-память Arduino ESP32.Это работает вроде как, но не так, как я хочу.
void writeString(const char* toStore, int startAddr) {
int i = 0;
for (; i < LENGTH(toStore); i++) {
EEPROM.write(startAddr + i, toStore[i]);
}
EEPROM.write(startAddr + i, '\0');
EEPROM.commit();
}
Мой звонок
writeString("TEST_STRING_TO_WRITE", 0);
только записывает TEST в память.Я не понимаю почему.Это из-за _?Или я пропускаю что-то другое?
Вот макрос LENGTH
#define LENGTH(x) (sizeof(x)/sizeof(x[0]))
и метод, который я использую, чтобы снова прочитать строку из памяти (которая, кажется, работает правильно):
String readStringFromFlash(int startAddr) {
char in[128];
char curIn;
int i = 0;
curIn = EEPROM.read(startAddr);
for (; i < 128; i++) {
curIn = EEPROM.read(startAddr + i);
in[i] = curIn;
}
return String(in);
}