如何获取 ESP32 上 NVS 值的长度/大小
你可以通过运行 nvs_get_blob() 并将 length 设置为指向内容为 0 的变量的指针,并将 out_value 设置为 nullptr 来查找存储在 ESP32 NVS 中的值的大小。nvs_get_str() 也可以工作,唯一的区别是 out_value 参数的类型,这完全不重要。
如果你查看此示例函数,会更容易理解:
nvs_get_size.cpp
size_t NVSGetSize(nvs_handle_t nvs, const char* key) {
esp_err_t err;
size_t valueSize = 0;
if((err = nvs_get_str(nvs, key, nullptr, &valueSize)) != ESP_OK) {
if(err == ESP_ERR_NVS_NOT_FOUND) {
// 未找到,无错误
return 0;
} else {
// 实际错误,记录并返回 0
printf("获取 NVS 键 %s 的大小失败:%s\r\n", key, esp_err_to_name(err));
return 0;
}
}
return valueSize;
}使用示例
这假设你已按照我们之前的文章如何在 ESP32 上初始化 NVS中所示设置了 myNvs
nvs_usage_example.cpp
size_t myKeySize = NVSGetSize(myNvs, "MyKey");Check out similar posts by category:
ESP8266/ESP32
If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow