Esp8266、Esp32上Arduino中EEPROM的相关经
2024-05-16 本文已影响0人
大林哥
-
String 不能直接用于 EEPROM.put() 和 EEPROM.get() 的存取,但至少可以通过下列示例代码实现:
String str = "你好,hello !"; // 待储存到 EEPROM 的数据 // 定义一个 char[] 数组 charArray,用于储存转换后的 str 数据 // 这里的 60 是 str 预估长度,至少需要 不小于 str.length()+1; // 但是注意:直接用str.length()+1是不行的,会在 EEPROM.put(100, charArray); 这一行报错 char charArray[60]; strcpy(charArray, str.c_str()); EEPROM.put(100, charArray); EEPROM.commit(); // 读取上面储存的值: char str2[60]; // 可大于 60 EEPROM.get(100, str2); Serial.print("str2:");Serial.println(str2);
-
char*与char[]的存取需要对应,不能混淆
-
EEPROM.commit(); 与 EEPROM.end(); 都会提交待写入数据,但是 EEPROM.end();会结束 EEPROM, 再次使用需要重新EEPROM.begin(1024); 而EEPROM.commit(); 之后还可以继续