目录
一,介绍
该库使用主闪存的一部分来存储数据, 数据存储在键值对下。密钥长度为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()
{
}
四.结果
想學,謝謝
Serial.printf(“Number of restart times: %dn”, reset_times);
建議改成
Serial.printf(“Number of restart times: %d”, reset_times);
好的 感谢指正
厉害了