ESP8266 12e Arduino IDE выводит мусорные значения на serial monitor
Недавно я начал использовать ESP8266 12E (ссылка Amazon) и подключил плату к Arduino IDE.
При попытке запустить любой из примеров скетчей все скетчи компилируются и загружаются правильно. Мигающий скетч правильно заставляет светодиод мигать, однако в мониторе последовательного порта появляется разное и большое количество ненужных символов:
Первое, что я исследовал, это, конечно же, скорость передачи данных. Онлайн-документация для ESP8266 указывает 115200 как правильную скорость передачи, но на нижней части устройства скорость указана как 9600.
Ненужные символы, конечно же, появляются независимо от скорости передачи 9600 или 115200. Методом проб и ошибок я пробовал разные варианты. Я также пробовал несколько кабелей USB-micro-USB (c). Это те же самые, которые я использую для зарядки телефона — в этом проблема?
Я упустил что-то простое? Я просмотрел каждый из других вопросов Stack Exchange о значениях последовательного монитора мусора, и все они, казалось, указывали на то, что виновником была скорость передачи данных или что значения CL / NR необходимо изменить. Эксперименты с ними не привели к удалению символов.
@Alex, 👍5
2 ответа
Лучший ответ:
Скорость передачи данных, которую вы указываете в своей программе, и скорость передачи данных в мониторе последовательного порта должны совпадать. ESP8266 выводит загрузочное сообщение со своей собственной скоростью передачи (зависит от модели к модели — попробуйте 57600) перед выполнением вашего скетча.
Например:
Вы можете выбрать любую (в разумных пределах) скорость передачи данных в своей программе, если вы также выбираете ту же скорость передачи данных во всем, что с ней взаимодействует (например, в мониторе последовательного порта в IDE). Если вы хотите видеть загрузочные сообщения, то последовательный монитор должен быть настроен на правильную скорость передачи данных.
У меня была та же проблема, что и у вас. Я разместил свое решение здесь:
Похоже, что ESP может загружать код на скорости 115200, но не может обмениваться данными с последовательным монитором на этой скорости передачи данных. Решение состоит в том, чтобы программно изменить скорость передачи в вашем скетче. Изменение скорости передачи не «залипает». Вы должны включить его в свой скетч, чтобы он устанавливался при каждом запуске скетча.
Надеюсь, это поможет.
- ESP8266-01 неправильные настройки управления потоком
- Как навсегда изменить скорость передачи данных ESP8266 (12e)?
- AT-команда не отвечает на последовательный монитор
- Последовательная связь между ESP8266 и Arduino Uno
- Последовательная связь ESP8266 с ATMega328P
- Как связаться с ESP8266 ESP01, отправив данные через программный сериал на Arduino Uno?
- Почему мы используем client.flush() в коде, когда мы подключаем Esp8266 к Интернету или серверу?
- Последовательная связь от Arduino до ESP8266 NodeMCU работает, но от NodeMCU до Arduino не работает
Спасибо за ваш ответ. Я не знаю, как просмотреть это загрузочное сообщение. В настоящее время я использую Windows 10, и у меня нет (легкодоступной) рабочей установки Linux. Однако я смогу получить к нему доступ через несколько часов. Судя по всему, скорости передачи совпадают: в меню «Инструменты Arduino IDE» > «Скорость передачи данных» + меню последовательного монитора и самом коде все они имеют значение 115200. Я поменял их на 57600 и пока не заметил изменений, @Alex
... «Если вы хотите видеть загрузочные сообщения, то для последовательного монитора необходимо настроить правильную скорость передачи данных». ... Что тут непонятного? При чем здесь ваша хостовая ОС?, @Majenko
Я нажал клавишу ввода раньше времени - см. редактирование комментария выше., @Alex
Я делаю это постоянно ;) Скорость передачи данных в меню инструментов предназначена исключительно для загрузки кода. Скорость передачи данных в вашем коде предназначена исключительно для вашей собственной связи внутри вашего кода. Единственная скорость передачи данных, которая вообще имеет какое-либо влияние на загрузочные сообщения, — это скорость, указанная в раскрывающемся списке последовательного монитора. Попробуйте разные значения там. Или просто игнорируйте загрузочные сообщения, поскольку они не так интересны., @Majenko
Больше экспериментируя со скоростью передачи данных, я узнал, что 74880 выдает точное загрузочное сообщение (см. ссылку ниже): [ссылка](http://i.imgur.com/WXgRQ5B.png) У меня все еще есть прикольный символ «y» (y с умлаутом) ÿ Значения EOL/CR/NL для моего последовательного монитора неверны? Уф, это был настоящий образовательный процесс. Я очень ценю вашу помощь, Маженко!, @Alex
Символ ÿ обычно ассоциируется с обрывом или иным отключением линии, обычно в конце передачи или сразу после ее начала. По сути, это коррупция и это вполне нормально., @Majenko