将设置存储在主机的存储器中

你好 如果您有幸从中国公司ESPRESSIF手中握住了ESP32微控制器(我很幸运,并且有了M5Stack ),那么这篇文章可能会有用。



在某些情况下,有必要将一些参数保存在非易失性存储器中(例如:计算设备在整个时间内开启的次数或保存Wi-Fi设置)。 使用首选项库可以轻松完成此操作。


我们声明了Preferences类的一个实例,在那里我们将看到...


我们应该做的第一件事是通过使用一对参数(但仅使用第一个参数)调用begin方法来创建钥匙串:钥匙串的名称和只读标志。


要将字符串值保存在内存中,您需要将键和值本身传递给名称由两部分组成的方法:第一部分是放置的 ,第二部分是类型的名称,例如: String 。 一切都清晰易懂。 是的,仍然有原始字节 不炸 没有人想要分配类型。 在这种情况下,该方法还使用第三个参数以及这些字节的数量。 通过此过程,一切似乎都可以了。


写入值后,您可以使用方法(名称与上一个相似) 读取它 ,其中第一部分将为get 。 此方法返回相应类型的键的值。 还记得字节大小写吗? 如果您不知道(或不记得)密钥上有多少个字节,请使用单个参数(密钥)提取getBytesLength方法,它将计算所有内容并返回size_t中的数量。


如果要从钥匙串中删除特定的钥匙,请为remove方法提供唯一的参数。


您是否想带一个真正的Marafet并清理整堆 ? 调用无任何参数的clear方法!


当您要完成捆绑的使用时,请不带任何参数地调用end方法。


通常,支持以下类型: CharUCharShortUShortIntUIntLongULongLong64ULong64FloatDoubleBoolStringBytes


我了解我想要的 某事 代码,所以这是草图。 草图计算设备的匝数并将其显示在显示屏上:


#include <M5Stack.h> #include <Preferences.h> Preferences preferences; const char* key = "OnOff"; uint32_t count; void setup() { m5.begin(); preferences.begin("MyKeyChain"); count = preferences.getUInt(key); preferences.putUInt(key, count + 1); M5.Lcd.setTextSize(3); M5.Lcd.setTextColor(TFT_WHITE); M5.Lcd.println("Hello, Habr!"); M5.Lcd.setTextSize(2); M5.Lcd.println("M5Stack Turned On:"); M5.Lcd.setTextSize(3); M5.Lcd.setTextColor(TFT_RED); M5.Lcd.println(count); M5.Lcd.setTextColor(TFT_WHITE); M5.Lcd.setTextSize(2); M5.Lcd.println("times"); } void loop() { } 

随附对库的引用。

Source: https://habr.com/ru/post/zh-CN476492/


All Articles