Див. також: Як прочитати значення ESP32 NVS у std::string
Запис std::string у NVS досить простий. Ви можете просто використати .c_str(), щоб отримати вказівник const char*, а потім продовжити, як показано в Як записати string (const char*) у ESP32 NVS
Ви можете використати цю утилітну функцію для запису рядка (const char*) у NVS:
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;
}Приклад використання
Цей приклад базується на Як ініціалізувати NVS на ESP32. Найважливіше, він передбачає, що ви вже ініціалізували NVS і myNVS існує та є дійсним.
nvs_write_usage_example.cpp
char mySerialNo[128] = {0};
_NVS_WriteString(myNVS, "SerialNo", "0000001");Це запише значення 0000001 у NVS з ключем SerialNo
Зверніть увагу, що рядки NVS обмежені за довжиною (тобто: довжина зберігається в NVS) і не обов’язково завершуються NUL. Цей код не зберігає NUL-термінатор у NVS.
Дивіться схожі статті за категоріями:
ESP8266/ESP32
Якщо ця стаття допомогла вам, будь ласка, подумайте про те, щоб купити мені каву або зробити пожертву через PayPal на підтримку досліджень та публікації нових статей на TechOverflow