Esp8266、Esp32上Arduino中EEPROM的相关经

2024-05-16  本文已影响0人  大林哥
  1. 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);
    
  2. char*与char[]的存取需要对应,不能混淆

  3. EEPROM.commit(); 与 EEPROM.end(); 都会提交待写入数据,但是 EEPROM.end();会结束 EEPROM, 再次使用需要重新EEPROM.begin(1024); 而EEPROM.commit(); 之后还可以继续

上一篇下一篇

猜你喜欢

热点阅读