std::string in ESP32 NVS schreiben

English Deutsch

Siehe auch: ESP32 NVS-Wert in std::string einlesen

Einen std::string in das NVS zu schreiben ist ziemlich einfach. Sie können einfach .c_str() verwenden, um einen const char*-Zeiger zu erhalten, und dann wie in String (const char*) in ESP32 NVS schreiben gezeigt vorgehen.

Sie können diese Hilfsfunktion verwenden, um einen String (const char*) in das NVS zu schreiben:

nvs_write_string.cpp
bool NVSWriteString(nvs_handle_t nvs, const std::string& key, const std::string& value) {
    esp_err_t err;
    if((err = nvs_set_blob(nvs, key.c_str(), value.data(), value.size())) != ESP_OK) {
        Serial.printf("Failed to write NVS key %s: %srn", 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.

nvs_write_usage_example.cpp
char mySerialNo[128] = {0};

_NVS_WriteString(myNVS, "SerialNo", "0000001");

Dies schreibt den Wert 0000001 in das NVS mit dem Schlüssel SerialNo.

Beachten Sie, dass NVS-Strings längenbegrenzt sind (d. h. die Länge wird im NVS gespeichert) und nicht notwendigerweise NUL-terminiert sind. Dieser Code speichert den NUL-Terminator nicht im NVS.


Check out similar posts by category: ESP8266/ESP32