二十七,使用首选项备份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: %d\n", reset_times);

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

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

void loop() 
{
}

.结果

二十七,使用首选项备份ESP32主闪存中的数据
「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
0 条回复 A 作者 M 管理员
    所有的伟大,都源于一个勇敢的开始!
欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论