UART (ang. Universal Asynchronous Receiver/Transmitter) Powszechnie stosowany interfejs szeregowy do transmisji danych pomiędzy urządzeniami elektronicznymi. Przesyła dane w postaci bitowej w trybie asynchronicznym, co oznacza, że każdy bit jest przesyłany oddzielnie i nie jest synchronizowany z zegarem. Składa się z nadajnika i odbiornika , które komunikują się między sobą za pomocą dwóch przewodów – linii danych (Tx) i linii zegarowej (Rx).
TX: koniec wysyłający dane, zasadniczo odgrywa rolę nadajnika, zwykle pin TXD musi być podłączony do pinu RXD innych urządzeń.
RX : koniec odbierający dane, zasadniczo odgrywa rolę odbiornika, zwykle pin RXD musi być podłączony do pinu TXD innych urządzeń.
UART jest stosowany w wielu urządzeniach elektronicznych, takich jak komputery, modemy, mikrokontrolery, urządzenia sieciowe i wiele innych. Jest to bardzo popularny interfejs, ponieważ jest prosty w użyciu i zapewnia niezawodną transmisję danych w różnych środowiskach i warunkach.
Konfiguracja


Wysyłanie danych :
HAL_UART_Transmit(huart2, pData, Size, Timeout)
- huart – wskaźnik do modułu UART,
- pData – dane do przesłania,
- Size – liczba wysyłanych bajtów,
- Timeout – maksymalny czas oczekiwania na dostępność modułu UART.
Przykład Wysyłania Hello world !:
const char message[] = "Hello world!\r\n";
HAL_UART_Transmit(&huart2, (uint8_t*)message, strlen(message), HAL_MAX_DELAY);
Odbieranie danych :
HAL_UART_Receive(huart2, pData, Size, Timeout)
huart2 jest generowane automatycznie po wyborze USART2
Przykład odbierania pojedynczego znaku :
uint8_t value;
HAL_UART_Receive(&huart2, &value, 1, HAL_MAX_DELAY);
printf("Odebrano: %c\n", value);

Program do odbierania danych z portu :
