如何从 ESP32 NVS 读取 string (const char*)
另请参阅:如何将 string (const char*) 写入 ESP32 NVS
你可以使用此实用函数读取字符串:
read_nvs_cstring.cpp
bool _NVS_ReadString(nvs_handle_t nvs, const char* key, char* value, size_t maxSize) {
esp_err_t err;
if((err = nvs_get_str(nvs, key, value, &maxSize)) != ESP_OK) {
Serial.printf("Failed to read NVS key %s: %s\r\n", key, esp_err_to_name(err));
return false;
}
return true;
}使用示例
此示例基于如何在 ESP32 上初始化 NVS。最重要的是,它假设你已经初始化了 NVS 并且 myNVS 存在且有效。
read_nvs_usage_example.cpp
char mySerialNo[128] = {0};
_NVS_ReadString(myNVS, "SerialNo", mySerialNo, 128-1);这会将键为 SerialNo 的 NVS 条目读入缓冲区 mySerialNo。注意我们使用 128-1 作为大小,即使缓冲区大小为 128。这是为了确保缓冲区的最后一个值始终有终止 NUL 字符。
注意 NVS 字符串是长度限定的(即:长度存储在 NVS 中)且不一定是 NUL 终止的。我建议不要在 NVS 中存储 NUL 终止符。
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