Как сбросить управление потоком, которое мешает мне читать данные с ESP8266?
У меня есть модуль ESP8266 (например, этот).
Я выполнил команду AT+UART_DEF=115200,8,1,0,3
, как указано в документации ESP8266 SDK, чтобы изменить скорость передачи моего модуля ESP8266.
Похоже, выполнив эту команду, я заблокировал свой ESP, потому что теперь модуль не отвечает ни на одну команду (пробовал скорости 9600, 74880, 115200 бод) и все данные, которые отправляются после сообщений загрузчика на скорости 74880 бод, являются мусором. Последний аргумент приведенной выше команды устанавливает управление потоком на "и RTS, и CTS". (3), но у меня нет этих булавок.
Распиновка модуля:
Поэтому я полагаю, что на моем ESP я не могу использовать аппаратное управление потоком. (Или я могу?)
Я по-прежнему могу получать сообщения загрузчика, которые отправляются при загрузке со скоростью передачи 74880 бит/с:
ets Jan 8 2013,rst cause:1, boot mode:(3,6)
load 0x40100000, len 6960, room 16
tail 0
chksum 0x4f
load 0x3ffe8008, len 24, room 8
tail 0
chksum 0xc6
load 0x3ffe8020, len 3196, room 8
tail 4
chksum 0x3a
csum 0x3a
user code done
Но все данные, которые отправляются после загрузчика, — мусор:
Чтобы уточнить, перед запуском команды AT+UART_DEF
я мог получать значимые данные и выполнять команды на скорости 115200 бит/с.
Я не уверен, что проблема связана с командой, которую я запустил, поэтому, пожалуйста, укажите мне, если я ошибаюсь. Согласно документации:
The configuration changes will be saved in the NVS area, and will still be valid when the chip is powered on
again.
Новые настройки UART вместе с настройками управления потоком хранятся в области NVS. Можно ли его сбросить? Или любой другой способ сбросить управление потоком?
Что я пробовал?
Я попытался стереть всю флэш-память модуля с помощью esptool
: erase_region 0x0 0x1000000
, а затем снова попытался прошить последнюю прошивку AT. Не помогло. Он по-прежнему получает сообщения загрузчика и некоторые мусорные данные.
Как разблокировать ESP? Надеюсь на вашу помощь! Заранее спасибо!
@g00dds, 👍0
Обсуждение1 ответ
Лучший ответ:
Вы не можете заблокировать ESP8266 с помощью программного обеспечения.
Вы можете убедиться в этом, прошив ему другую, очень простую программу, вот так:
#include <Arduino.h>
void setup() {
Serial.begin(74880);
delay(1000);
Serial.println("hello world");
}
loop() {
}
Если для последовательного монитора установлено значение 74880 бит/с, вы должны увидеть сообщения загрузчика, а также одну строку "hello world".
Вы также должны полностью стереть содержимое флэш-чипа, а не только конкретную область.
esptool.py erase_flash
После этого вам нужно будет переустановить прошивку, которую вы пытались запустить.
- ESP8266 — Отправка команды сброса программного обеспечения
- Nodemcu 1.0 и режим загрузки (1,6) после мягкого сброса
- D1 mini не возобновляет работу, как ожидалось, после глубокого сна
- HLW8032 UART отправляет случайные данные (регистры часто переполняются)
- ESP8266: Сопряжение MAX485 TTL-to-RS485 на последовательном порту
- Соединение UART между Arduino Nano и NodeMCU
- Запрограммировать Arduino через UART от ESP8266 SPIFFS
- Трассировка стека сброса ESP12E Soft WDT ведет к библиотекам
просьба не размещать картинки текста...добавляйте сам текст, @jsotola
@jsotola, о каких картинках ты говоришь? Картинка мусора данных? Полезно ли публиковать текст этих мусорных данных?, @g00dds