Здравствуйте, такой вопрос: Когда загружаем прошивку в ESP8266 и стираем весь Flash из Arduino IDE, EEPROM естественно так же стирается. Вот только не понятно какими символами она записывается, так как при чтении “пустой” EEPROM в Serial, показывает, что там что-то есть.
Вот что показывает Serial: SSID: ���������� Pass WiFi: ��������
У меня условие проверки EEPROM при включении ESP8266 такое:
if (!digitalRead(PIN_BUT) || String(portalCfg.ssid) == "") portalRun(); // Если кнопка при Вкл. нажата или структура пустая, то переходим в режим AP
Если я делаю сброс настроек из ESP, заполняя его нулями вот так:
EEPROM.begin(120); // Инициализируем EEPROM
for (byte rw = 0; rw < 120; rw++) {
EEPROM.write(rw, 0); // Подготавливаем к записи нулей с 0 по 120 ячейки (сохраняем в ОЗУ)
EEPROM.commit(); // Записываем из ОЗУ в EEPROM
EEPROM.end(); // И очищаем данные из ОЗУ
}
То условие String(portalCfg.ssid) == “” отрабатывает отлично, а при стирании EEPROM из Arduino IDE так не прокатывает.
Как сделать условие, так что если в EEPROM записан какой то мусор непонятный, как показал выше, то запустить функцию вызывающую переход в режим AP?
Спасибо за просто совет [b707]. При чтении в int переменная заполнена максимальными значениями, значит в byte EEPROM пишется 255.
И тут же обратил внимание, что после компиляции есть путь с параметрами в окне вывода: “C:\Users\Otto\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2/tools/upload.py”
Почему то не обращал внимание на неё ранее, посмотрев файлик upload.py, убедился, что пишутся значения 255.
Строчка из файла: