Связь через последовательный монитор, но невозможно получить связь через терминал за пределами Arduino IDE.
Я использую Arduino Nano 33 BLE. Я могу общаться через последовательный монитор внутри Arduino IDE, но не могу общаться через терминал за пределами Arduino IDE. Я использую Teraterm, нужно ли мне выполнять какие-либо дополнительные настройки?
Нет сообщений об ошибках. Он работает на последовательном мониторе Arduino IDE со скоростью передачи данных 115200 бод с настройками по умолчанию («SERIAL_8N1»). Настройка последовательного порта на Teraterm следующая:
Скорость: 115200 Данные: 8 бит Четность: нет. Стоп-биты: 1 бит. Управление потоком: нет
Дело в том, что он делает то, что должен, записывая одну команду, состоящую из одной буквы, я имею в виду, в моем скетче Arduino, если вы пишете "$" на Serial Monitor делает сброс, а через Teraterm если написать "$" Он также выполняет сброс... но на Тератерме, если я набираю команду длиннее одной буквы, он даже не показывает то, что я набираю на Тератерме, и не распознает.
@Oscar, 👍1
Обсуждение2 ответа
В TeraTerm локальное эхо по умолчанию отключено. Таким образом, вы ничего не увидите, пока что-то печатаете. Вот настройки:
- Сначала подключитесь к последовательному порту.
- Затем перейдите в
Настройка
->Терминал
.
- На основе вашего кода выберите, что вы ожидаете получить в конце передачи от Arduino, и что вам нужно отправить в конце вашей команды в Arduino, чтобы сообщить, что это конец команды. Обычно это может быть возврат каретки (CR: 0x0D) или перевод строки (LF: 0x13) или и то, и другое.
Также проверьте Локальное эхо
. Это напечатает все, что вы вводите на терминале.
- Затем
Настройка
->Последовательный порт...
.
- И соответствующим образом настройте последовательный порт.
То, что вы называете «терминалом», на самом деле является эмулятором терминала, т.е. компьютерная программа, предназначенная для эмуляции компьютера старой школы компьютера терминал. Терминалы на основе ЭЛТ, в свою очередь, были разработаны для имитации старые «твердые терминалы», такие как почтенный ASR-33. Печатная копия Терминал (также называемый «телетайпной машинкой») по сути представляет собой пишущую машинку, оснащенную с последовательным портом. Все, что вы набираете, отправляется по проводу. Нажатия клавиш отправляются немедленно: на этих устройствах не было памяти (которая была в то время это было чрезвычайно дорого) и не могло буферизовать вводимые данные. Программа Teraterm, которую вы используете, наследует эту историю: как телетайп, он немедленно передает нажатия клавиш.
Последовательный монитор Arduino, напротив, не передает данные по мере ввода. Вместо этого вы вводите строку текста, и когда вы нажимаете «Отправить», весь линия отправляется сразу, на полной скорости последовательного порта.
Это существенно влияет на время передачи. С Teraterm программа Arduino видит длинные паузы (которые зависят от ваша скорость набора текста) между последовательными символами. С сериалом мониторе, интервал между последовательными символами составляет примерно 87 мкс. Если ваш Код Arduino должным образом буферизует входные данные до тех пор, пока не получит конец линии, то он будет одинаково хорошо работать и с Тератермом, и с последовательный монитор. Если, с другой стороны, ваш код становится нетерпеливым и время ожидания, пока вы печатаете, тогда оно не станет многосимвольным команды, которые вы вводите в Teraterm.
Обратите внимание: если вы хотите, чтобы ваша программа Arduino была дружественной к терминалу пользователям, вы можете захотеть повторить полученные символы, как локальное эхо на терминал обычно не включен по умолчанию. Что еще более важно, вы можете хотите обработать клавишу возврата (которая может отправлять либо ASCII BS, либо ASCII DEL), чтобы пользователь мог исправить опечатки. Посмотрите, как это сделано в этом очень простой интерпретатор командной строки.
- Как вывести несколько переменных в строке?
- esp32, platformio A fatal error occurred: Packet content transfer stopped (received 8 bytes) *** [upload] Error 2
- Ошибка A fatal error occurred: Failed to connect to ESP32: Wrong boot mode detected (0x13)! The chip needs to be in download mode. [upload] Error 2
- Загрузить код на Arduino Leonardo с помощью командной строки
- Эмуляция стандартного периферийного USB-устройства Mifare с помощью RFID-RC522
- Текстовая часть превышает доступное место на плате
- Arduino - ошибка "expected primary-expression before '.' token"
- Почему IDE не может найти плату, несмотря на то, что она четко видна и выбрана?
вы получаете сообщение об ошибке? (добавьте это в вопрос), @Juraj
Каковы настройки последовательного порта в скетче Arduino? На последовательном мониторе? На Тератерме?, @Edgar Bonet
«не могу общаться» аналогично описанию «плохое самочувствие»… оно не дает никакой полезной информации о проблеме., @jsotola
Вы хотите сказать, что не видите то, что пишете? Это будет значение по умолчанию для многих терминальных программ. Вам нужно включить «локальное эхо», чтобы видеть, что вы печатаете., @Nick Gammon
У вас есть скетч, который вы можете нам показать?, @VE7JRO