View Categories

Монитор порта

Консоль #

Самый простой способ получить обратную связь от программы - вывод данных в консоль - окно ввода-вывода текстовых данных для взаимодействия с программой. Это самый простой способ отладки кода - отправлять из программы данные на разных участках её выполнения, выводить ошибки, показания датчиков и прочее. Если речь идёт о компьютере, то программа выполняется на компьютере и консоль расположена там же, выполнением программы и выводом в консоль занимается один и тот же процессор. Для примера можно открыть онлайн-компилятор OneCompiler, в нём будет минимальный пример, который выводит в консоль строку "Hello, World!". Если запустить программу - можно увидеть эту строку в консоли:

UART #

С Arduino ситуация немного иная - программа выполняется на отдельном устройстве со своим процессором, к которому нет такого прямого доступа. Arduino подключается к компьютеру по USB, на самой плате USB гнездо подключено не напрямую к микроконтроллеру - он не умеет с ним работать - а к USB-UART преобразователю. UART - это универсальный приёмник-передатчик, почти все микроконтроллеры имеют такой интерфейс для связи с внешними устройствами. UART представлен двумя пинами RX (Receive, приём) и TX (Transmit, передача) - именно к ним и подключен преобразователь. Взглянем на плату Arduino Nano:

С его помощью Arduino может принимать и отправлять данные по USB проводу.

COM порт #

Компьютер взаимодействует именно с USB-UART преобразователем, он не знает, что это плата Arduino. При подключении Arduino на стороне компьютера создаётся виртуальный COM порт (последовательный порт) - именно так компьютер видит нашу плату:

То есть на стороне микроконтроллера для связи используется UART, а на стороне компьютера - COM порт.

Монитор порта #

Чтобы работать с портом на стороне компьютера, понадобится монитор порта - программа, которая умеет отправлять и читать данные с COM порта. Таких программ много и подойдёт любая, но в Arduino IDE есть свой встроенный монитор порта, что очень удобно. Чтобы начать работу, нужно выбрать порт (тот же, что был выбран для загрузки прошивки) и открыть монитор:

В окне монитора порта есть несколько важных настроек:

  • Скорость - скорость связи. Должна совпадать со скоростью UART, установленной в программе на микроконтроллере. Обычно 9600 или 115200
  • Конечный символ - символ, который будет добавляться в конце текста при отправке из монитора порта

Serial #

Для работы с портом на стороне Arduino используется системный объект Serial, он позволяет читать и отправлять данные. Перед началом работы нужно запустить связь с указанием скорости:

void setup() {
    Serial.begin(115200);   // запустить связь на скорости 115200
}

Для отправки используются методы print(любые данные) и println(любые данные) - первый просто печатает данные, второй печатает и переносит строку. Давайте напишем классический пример, который выводит строку "Hello, World!" в консоль:

void setup() {
    Serial.begin(115200);
    Serial.println("Hello, World!");
}

void loop() {
}

Загрузите программу и откройте монитор порта на скорости 115200:

Данный код выполнится один раз при запуске МК. Нажмите на плате кнопку Reset (перезагрузка) несколько раз - после каждого нажатия в порт снова выведется строка

Serial наследует класс Stream, все его возможности можно посмотреть в документации.

Ещё несколько примеров:

void setup() {
    Serial.begin(115200);

    Serial.print("Hello");      // строка
    Serial.print(',');          // символ
    Serial.println(" World!");  // строка с переносом

    Serial.println(12345);      // число по основанию 10 (по умолчанию)
    Serial.println(12345, BIN); // число по основанию 2

    Serial.println(3.1415);     // десятичная дробь, точность 2 знака по умолчанию
    Serial.println(3.1415, 4);  // десятичная дробь, точность 4 знака

    Serial.println();           // просто перевод строки
}

void loop() {
}

В дальнейших уроках мы будем пользоваться выводом в Serial для визуализации того, что происходит в программе.

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
Прокрутить вверх