String (const char*) aus ESP32 NVS lesen

English Deutsch

Siehe auch: String (const char*) in ESP32 NVS schreiben

Sie können diese Hilfsfunktion verwenden, um einen String zu lesen:

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;
}

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.

read_nvs_usage_example.cpp
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.


Check out similar posts by category: ESP8266/ESP32