Я хочу записать текст во флэш-память 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);
только записывает ТЕСТ в память. Я не понимаю почему. Это из-за _? Или мне чего-то не хватает?
Вот используемый макрос 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);
}