Arduino UNO зависает на Serial.println

progman
Offline
Зарегистрирован: 26.01.2019

Зависает прошивка на вызове Serial.println( "bla bla bla" );

В консоли выводит два первых символа отладочной строки и наглухо виснет

зависание происходит нестабильно. Смена скорости пеердачи данных в порт проблему не решает.

Куда копать - не понимаю?

PS вопрос: вывод в порт асинхронно происходит или нет?

progman
Offline
Зарегистрирован: 26.01.2019

PPS замена Arduino на другую проблему не решает.

b707
Онлайн
Зарегистрирован: 26.05.2017

Progman - размещайте свои вопросы, пожалуйста,  в Песочнице. Им там самое место.

А то как спросите - хоть стой. хоть падай.

По сути вопроса - у меня никогда не было, чтоб ардуина зависиала из-за оператора print. На этом операторе - да, но не из-за него. Понимаете разницу?

Так что либо выкладывайте код, в котором это происходит, либо обсуждать нет смысла.

 

 

bwn
Offline
Зарегистрирован: 25.08.2014

To TC, переместил в песочницу, прочитайте начало головной темы. Обязательно, чтобы потом не обижаться.

progman
Offline
Зарегистрирован: 26.01.2019

Вопрос решил и ответ не такой уж и очевидный. И дело действительно не в Serial.print, но поскольку единственная известная мне откладка через консоль, то казалось что виснет именно Serial.print 

Serial.print и аналогичные имеют асинхронный вывод. В моем случае зависало сильно после вызова Serial.println( "bla bla bla" ); То есть выход из Serial.println не означает окончания вывода текста в консоль. Для меня это неожиданно. Может быть для гуру и очевидный факт. 

А зависало у меня в вызове HttpClient.get из-за того что я перемудрил с вызовами sei() / cli() и в итоге millis() возвращала одни и теже значения и таймауты внутри хттп клиента не срабатывали и получался бесконечный цикл если сервер не успевал за стандартный тайминг выдать ответ на запрос.