std::string in ESP32 NVS schreiben
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:
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.
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.