Программная UART и аппаратная на Arduino отличаются способом реализации передачи данных. 2
Аппаратная UART предполагает, что в контроллере существует электронный узел, в регистр которого программа только загружает байт для передачи, а формирование сигналов обмена и все остальные операции делает этот узел. 2 Например, на Arduino UNO аппаратный UART обозначается символами RX и TX рядом с соответствующими выводами (0 и 1 цифровые выводы). 1
Программная UART реализуется через подключение стандартной для Arduino IDE библиотеки SoftwareSerial. 3 В этом случае все сигналы формируются программой, что занимает ресурсы процессора. 2 Программный порт подходит для простых проектов, не критичных к времени работы кода, или для отладки проектов. 1
Таким образом, аппаратный UART обладает преимуществами перед программным: не тратится флэш-память микроконтроллера и ресурсы, так как данные поступают и отправляются в фоновом режиме. 3