Почему настройки не могут putString() на одном ESP32 при работе с другими?

У меня есть несколько ESP32, которые запускают мою прошивку. Прошивка выполняет настройку Wi-Fi из моего приложения BLE, SSID и пароль сохраняются в настройках с помощью двух putString() следующим образом:

const size_t putSsidLength = preferences.putString("ssid", String(ssid)); 
if (putSsidLength == 0) {
    Serial.println(" Preferences: Could not write SSID to nvs. No reboot");
    return;
}

const size_t putPassphraseLength = preferences.putString("password", String(passphrase));
if (putPassphraseLength == 0) {
    Serial.println(" Preferences: Could not write passphrase to nvs. No reboot");
    return;
}

Во время загрузки прошивка извлекает учетные данные Wi-Fi, потенциально сохраненные во флэш-памяти, с помощью настроек следующим образом:

ssid = preferences.getString("ssid", ""); 
password = preferences.getString("password", "");

Пока все идет хорошо, все работает хорошо.

Но по некоторым причинам у меня есть один ESP32, где putString() не выполняет запись в nvs.

Как это происходит? Есть ли способ снова заставить nvs работать? Может ли что-то произойти в производстве через некоторое время?

, 👍0

Обсуждение

Вы можете попробовать использовать esptool.py для запуска операции erase_flash и стереть весь флэш-чип..., @Majenko