二十七,使用首选项备份ESP32主闪存中的数据

释放双眼,带上耳机,听听看~!

一,介绍

该库使用主闪存的一部分来存储数据, 数据存储在键值对下。密钥长度为15个ASCII字符,必须是唯一的。值可以是:

+整数类型

+可变长度二进制数据(blob)

– 必须匹配写入和读取值的数据类型。

– 我们的首选项具有如下结构:

namespace { 
   key:value 
} 

其中命名空间是为了避免键冲突(如果我们有2个具有相同名称的键,我们使用命名空间来分隔它们)。例如:

section1 { 
   counter:value 
}
section2 { 
   counter:value 
} 

这里,我们有一个名为counter的重复键但在不同的名称空间中。

– 我们为本教程创建了一个演示:当用户按下重置按钮时,存储重启次数。并在终端上打印。

二.硬件

该库使用主闪存,无需额外的硬件。

三.软件设计

– 要测试程序,只需按下Reset按钮,即可看到reset_times增加。

#include <Preferences.h>
/*创建Preferences库的实例*/
Preferences preferences;

void setup() {
  Serial.begin(115200);
  Serial.println();

  /* 在读写模式下
启动命名空间“iotsharing” :将第二个参数设置为false   注意:命名空间名称限制为15个字符 */
  preferences.begin("iotsharing", false);

  /* 如果要删除打开的命名空间下的所有首选项,请取消注释*///preferences.clear();

  /* 如果我们要删除reset_times键取消注释 *///preferences.remove("reset_times");

  /* 获取键“reset_times”的值,如果键不存在则在第二个参数中返回默认值0 
  注意:键名也限制为15个字符 */unsigned int reset_times = preferences.getUInt("reset_times", 0);

  /* 我们刚刚重置ESP然后增加reset_times */
  reset_times++;

  Serial.printf("Number of restart times: %dn", reset_times);

  /* 将reset_times存储到Preferences */
  preferences.putUInt("reset_times", reset_times);

  /* 关闭首选项 */
  preferences.end();
}

void loop() 
{
}

.结果

二十七,使用首选项备份ESP32主闪存中的数据

给TA打赏
共{{data.count}}人
人已打赏
ESP32ESP32-基础

二十六,ESP32 使用事件组同步多个任务-广播事件

2018-10-21 8:45:15

ESP32ESP32-基础

二十八,ESP32 低功耗睡眠模式

2018-10-24 12:12:33

4 条回复 A文章作者 M管理员
  1. 老鐘

    想學,謝謝

  2. 老鐘

    Serial.printf(“Number of restart times: %dn”, reset_times);
    建議改成
    Serial.printf(“Number of restart times: %d”, reset_times);

    • Luca

      好的 感谢指正

  3. RaiiLee

    厉害了

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索
'); })();