【发布时间】:2019-05-14 22:54:35
【问题描述】:
我想在 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);
}
【问题讨论】:
标签: arduino esp32 flash-memory eeprom