Если я загружаю любой эскиз, который посылает последовательные данные, я сразу же вижу, как светодиоды TX / RX мигают после загрузки эскиза. Если я затем запусту последовательный монитор, появится эскиз для перезапуска.
Минимальный набросок, демонстрирующий это поведение:
void setup()
{
Serial.begin(9600);
Serial.println("Setup");
}
void loop()
{
Serial.println("Loop");
delay(1000);
}
Протестировано с несколькими платами и версиями IDE для Mac и Windows.
Пример вывода - он возвращается к «Установке», когда я открываю последовательный монитор:
Почему это?
serial
arduino-ide
Cybergibbons
источник
источник
Ответы:
Arduino использует сигналы RTS (Request To Send) (и я думаю, что DTR (Data Terminal Ready) )) для автоматического сброса. Если вы получаете последовательный терминал, который позволяет вам изменять настройки управления потоком, вы можете изменить эту функцию.
Терминал Arduino не дает вам много вариантов, и это по умолчанию. Другие позволят вам настроить гораздо больше. Установка управления потоком на ноль позволит вам подключаться / отключаться от последовательного порта без сброса платы. это очень полезно для отладки, когда вы хотите иметь возможность просто подключить соединитель и увидеть результат без необходимости начинать набросок заново.
Еще один способ отключить автоматический сброс - это установить нагрузочный резистор на контакт сброса.
Отключение автоматического сброса при последовательном соединении
источник
Истина всегда в таблицах данных, схемах и коде:
Arduino UNO фактически использует
/DTR
линию для запуска сброса, как вы можете видеть на следующей таблице:источник
Это решает проблему
источник