UART — самый простой последовательный интерфейс: две линии, TX и RX, и договорённость о скорости.
Как работает: линия в покое держит единицу. Передача начинается старт-битом (ноль), затем идут 8 бит данных (младшим вперёд), опционально бит чётности и стоп-бит (единица). Приёмник ловит старт-бит и отсчитывает биты по времени.
Отсюда параметр baud rate — скорость в битах в секунду: 9600, 19200, 115200, 921600. Обе стороны должны совпадать, иначе получится мусор. Ошибка даже в 3 % уже ломает приём.
Соединение: TX одного → RX другого, обязательно общая земля. Два TX вместе — не работает.
Уровни: у микроконтроллера 3.3 В или 5 В (TTL), у COM-порта компьютера ±12 В (RS-232) — их нельзя соединять напрямую, нужен преобразователь (MAX3232).
Что важно: UART не имеет адресации и тактирования. Это точка-точка: одно устройство — один собеседник. Для нескольких нужен либо отдельный UART на каждого, либо шина (I2C/SPI/RS-485).
Практика: для отладки — Serial.print и USB-UART; для модулей (GPS, Bluetooth HC-05, GSM) — UART; для связи двух плат на расстоянии до метра — UART.
Тонкость: на длинных проводах UART плохо переносит помехи и не любит «горячее» подключение. Для расстояний в метры лучше RS-485 (дифференциальный) или CAN.
UART — первый интерфейс, с которым сталкиваются все: отладочный вывод, GPS, Bluetooth-модули.
Подключи USB-UART к микроконтроллеру (TX→RX, RX→TX, GND→GND) и настрой 115200 8N1. Увидишь текст в терминале — интерфейс работает.
Проверь себя
Что будет, если соединить TX с TX?
Оба выхода будут «толкать» линию в разные стороны: приём не пойдёт, а при разных уровнях возможен повышенный ток. Нужен перекрёст: TX→RX.
-
Wikipedia: Universal asynchronous receiver-transmitter
UART: формат кадра
-
SparkFun: Serial Communication
UART на практике