String (const char*) aus ESP32 NVS lesen
Siehe auch: String (const char*) in ESP32 NVS schreiben
Sie können diese Hilfsfunktion verwenden, um einen String zu lesen:
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;
}Verwendungsbeispiel
Dieses Beispiel basiert auf NVS auf ESP32 initialisieren. Am wichtigsten ist, dass es voraussetzt, dass Sie das NVS bereits initialisiert haben und myNVS existiert und gültig ist.
char mySerialNo[128] = {0};
_NVS_ReadString(myNVS, "SerialNo", mySerialNo, 128-1);Dies liest den NVS-Eintrag mit dem Schlüssel SerialNo in den Buffer mySerialNo. Beachten Sie, dass wir 128-1 als Größe verwenden, obwohl der Buffer eine Größe von 128 hat. Dies stellt sicher, dass es IMMER ein terminierendes NUL-Zeichen am letzten Wert des Buffers gibt.
Beachten Sie, dass NVS-Strings längenbegrenzt sind (d. h. die Länge wird im NVS gespeichert) und nicht notwendigerweise NUL-terminiert sind. Ich empfehle, das NUL-Terminator nicht im NVS zu speichern.