RX i TX w UART - jak połączyć przewody i usunąć błędy?

Miłosz Szymczak .

28 września 2026

Płytka drukowana z portami USB, złączami i układami scalonymi. Widoczne piny GPIO, złącze zasilania i porty sieciowe. Gotowa do transmisji danych (rx tx).

Gdy mikrokontroler nie odpowiada, moduł GPS pokazuje przypadkowe znaki albo konwerter USB-UART milczy, problem często leży w dwóch niepozornych liniach oznaczonych jako RX i TX. Wyjaśniam, jak działają sygnały odbioru i nadawania, jak poprawnie je połączyć, czym różni się UART od RS-232 oraz jak szybko znaleźć przyczynę błędów komunikacji.

Najważniejsze zasady komunikacji RX i TX

  • TX nadaje, a RX odbiera dane.
  • Połączenie dwóch urządzeń wymaga skrzyżowania przewodów: TX do RX i RX do TX.
  • Oba układy muszą mieć wspólną masę GND.
  • Parametry transmisji, zwłaszcza baud rate, liczba bitów danych i parzystość, muszą być zgodne.
  • Poziomy 3,3 V, 5 V i RS-232 nie są wzajemnie zamienne bez odpowiedniego konwertera.

Zestaw rozwojowy STM32 z modułem USB-TTL. Widoczne piny RX i TX do komunikacji szeregowej.

Co oznaczają oznaczenia RX i TX

Skrót TX pochodzi od transmit, czyli nadawania, a RX od receive, czyli odbioru. Linia TX wysyła kolejne bity danych z jednego urządzenia, natomiast RX przyjmuje je po stronie odbiornika.

Najłatwiej zapamiętać to z perspektywy konkretnego urządzenia. Jego TX jest wyjściem, a RX wejściem. Dlatego przy połączeniu dwóch układów przewody krzyżuje się, łącząc TX pierwszego urządzenia z RX drugiego oraz TX drugiego z RX pierwszego.

Urządzenie A Urządzenie B Rola
TX RX Dane wysyłane z A do B
RX TX Dane wysyłane z B do A
GND GND Wspólny punkt odniesienia napięcia

Brak wspólnego GND jest jednym z najczęstszych powodów pozornie losowych błędów. Nawet gdy przewody sygnałowe są podłączone prawidłowo, odbiornik może nie rozpoznać stanów logicznych, jeśli oba układy nie odnoszą napięcia do tej samej masy.

Jak działa transmisja szeregowa UART

RX i TX najczęściej spotyka się przy interfejsie UART, czyli asynchronicznej transmisji szeregowej. Asynchronicznej, ponieważ urządzenia nie przesyłają osobnego przewodu zegarowego. Zamiast tego uzgadniają szybkość transmisji i sposób dzielenia danych na ramki.

Typowa ramka UART zawiera bit startu, zwykle 8 bitów danych, opcjonalny bit parzystości oraz jeden lub dwa bity stopu. Popularny zapis 115200 8N1 oznacza szybkość 115 200 bitów na sekundę, 8 bitów danych, brak kontroli parzystości i 1 bit stopu.

Po obu stronach trzeba ustawić zgodne parametry. Sama liczba bitów na sekundę nie wystarczy, ponieważ różnice w parzystości, liczbie bitów stopu albo kolejności bitów mogą powodować błędy mimo prawidłowego skrzyżowania przewodów.

Przeczytaj również: Pasmo C - Dlaczego wciąż wygrywa stabilnością?

Pełny i jednokierunkowy przepływ danych

Połączenie TX oraz RX umożliwia zwykle komunikację pełnodupleksową, czyli jednoczesne nadawanie i odbieranie. Jeśli urządzenie ma tylko wysyłać dane, wystarczy czasem podłączyć jego TX do RX odbiornika, ale w praktyce warto również połączyć masy.

Niektóre moduły wykorzystują dodatkowe linie RTS i CTS. To sprzętowa kontrola przepływu, która pomaga zatrzymać nadawanie, gdy odbiornik nie nadąża z przetwarzaniem danych. Przy prostych połączeniach Arduino, ESP32 czy modułu GPS zazwyczaj nie jest potrzebna.

RX i TX w Arduino, ESP32 oraz konwerterach USB

W płytkach rozwojowych linie szeregowe mogą mieć różne nazwy. Arduino często oznacza je jako D0/RX i D1/TX, ESP32 pozwala przypisać UART do wybranych GPIO, a konwerter USB-UART udostępnia piny opisane jako TXD i RXD.

W przypadku połączenia płytki z konwerterem USB trzeba zachować zasadę krzyżowania. TX konwertera łączę z RX płytki, a RX konwertera z TX płytki. Jeśli chcę tylko obserwować komunikaty debugowania, czasem wystarczy połączenie TX urządzenia z RX konwertera i wspólna masa.

Połączenie TX RX GND
Mikrokontroler z modułem GPS TX mikrokontrolera do RX GPS RX mikrokontrolera do TX GPS Wspólna masa
Mikrokontroler z komputerem TX płytki do RX konwertera RX płytki do TX konwertera Wspólna masa
Odczyt logów TX urządzenia do RX adaptera Opcjonalnie Wspólna masa

Trzeba też uważać na port używany przez programator lub monitor szeregowy. Na wielu płytkach główny UART jest współdzielony z USB, więc podłączenie zewnętrznego modułu do tych samych pinów może powodować konflikty podczas wgrywania programu.

Najważniejsza różnica między UART, TTL i RS-232

Oznaczenia TX i RX nie określają jeszcze poziomów napięcia. To tylko nazwy kierunku sygnału. Ten sam opis może pojawić się przy interfejsie UART 3,3 V, UART 5 V, RS-232, RS-485, a nawet w innych rozwiązaniach wykorzystujących transmisję szeregową.

Standard lub poziom Typowe zastosowanie Na co uważać
UART 3,3 V ESP32, wiele nowoczesnych modułów Nie podawać bezpośrednio sygnału 5 V na wejście nieprzystosowane do takiego napięcia
UART 5 V Wybrane płytki Arduino i starsze moduły Może uszkodzić układ pracujący wyłącznie z logiką 3,3 V
RS-232 Starsze komputery, urządzenia przemysłowe Wymaga konwertera poziomów, ponieważ nie jest bezpośrednim UART-em TTL
RS-485 Długie przewody i sieci przemysłowe Używa różnicowej transmisji i transceivera, a nie prostych linii RX/TX

To rozróżnienie ma praktyczne znaczenie. Nie wolno łączyć bezpośrednio portu RS-232 z pinem mikrokontrolera, nawet jeśli oba urządzenia mają wyprowadzenia opisane jako TX i RX. Potrzebny jest konwerter, na przykład układ dopasowujący poziomy napięć i odwracający logikę sygnału.

Podobnie wygląda sprawa między 5 V i 3,3 V. Czasem wejście 3,3 V toleruje sygnał 5 V, ale nie należy zakładać tego bez sprawdzenia dokumentacji. Najbezpieczniejszym rozwiązaniem jest konwerter poziomów logicznych albo dzielnik napięcia zastosowany zgodnie z wymaganiami konkretnego układu.

Dlaczego komunikacja przez RX i TX nie działa

Gdy urządzenia nie wymieniają danych, zaczynam od rzeczy prostych. W praktyce większość problemów powodują nie uszkodzone moduły, lecz zamienione przewody, brak GND albo różne ustawienia transmisji.

  1. Sprawdź, czy TX jednego urządzenia trafia do RX drugiego, a nie do TX.
  2. Połącz masy obu układów.
  3. Ustaw tę samą prędkość, na przykład 9600 albo 115200 bit/s.
  4. Zweryfikuj format ramki, najczęściej 8N1.
  5. Sprawdź, czy napięcie sygnałów wynosi 3,3 V, 5 V czy odpowiada standardowi RS-232.
  6. Odłącz inne urządzenia korzystające z tego samego UART-u.
  7. Wykonaj test pętli zwrotnej, łącząc TX z RX w jednym urządzeniu.

Test pętli zwrotnej jest szczególnie użyteczny. Jeśli znak wysłany z terminala wraca do niego poprawnie, sam port i konwerter prawdopodobnie działają, a problem znajduje się po stronie drugiego urządzenia, jego konfiguracji lub okablowania.

Losowe symbole na terminalu zwykle wskazują na niezgodną prędkość transmisji, ale nie jest to jedyna możliwość. Przyczyną może być również odwrócona logika, niewłaściwy poziom napięcia, zakłócenia na długim przewodzie albo błędne ustawienie bitu parzystości.

Jak dobrać połączenie do konkretnego projektu

Do krótkiego połączenia między mikrokontrolerem a modułem GPS, modemem lub czujnikiem wystarczy zwykle UART z trzema przewodami. Przyjmuję wtedy prostą konfigurację, wspólną masę i identyczne parametry po obu stronach.

Jeżeli przewód ma kilka metrów, środowisko jest zaszumione albo urządzenia są zasilane z różnych miejsc, zwykłe TX/RX może przestać być dobrym wyborem. W takich warunkach lepiej rozważyć RS-485, izolację galwaniczną lub inny interfejs zaprojektowany do większych odległości.

Przy dużej liczbie danych znaczenie ma również bufor odbiorczy. Mikrokontroler może odebrać bajty szybciej, niż program zdąży je przetworzyć, dlatego aplikacja powinna regularnie odczytywać dane i rozpoznawać pełne komunikaty, zamiast zakładać, że jeden odczyt zawsze zwróci całą wiadomość.

Sam wybór wyższej prędkości nie rozwiązuje problemu. Zwiększenie baud rate skraca czas transmisji, ale może pogorszyć odporność na zakłócenia i wymagać dokładniejszego taktowania. W projektach hobbystycznych i prototypach rozsądniej zacząć od 9600 lub 115200 bitów na sekundę, a dopiero później sprawdzać, czy szybsza komunikacja rzeczywiście jest potrzebna.

Małe ustawienie, które decyduje o całej transmisji

Przy pierwszym uruchomieniu połączenia zapisuję sobie pełną konfigurację obu stron, a nie tylko nazwę portu. Informacja „UART działa z prędkością 115200” jest niepełna, jeśli nie wiadomo, czy użyto 7 czy 8 bitów danych, jak ustawiono parzystość i ile bitów stopu przewidziano.

Najpewniejszy schemat diagnostyczny jest prosty: najpierw sprawdzam napięcia, potem przewody, wspólną masę i parametry ramki. Dopiero gdy te elementy są zgodne, szukam błędu w programie, protokole urządzenia albo obsłudze bufora. Taka kolejność oszczędza sporo czasu, bo pozwala odrzucić najbardziej typowe przyczyny bez wymiany sprawnych modułów.

FAQ - Najczęstsze pytania

Przewody należy skrzyżować: TX pierwszego urządzenia łączy się z RX drugiego, a RX pierwszego z TX drugiego. Trzeba również połączyć GND obu układów, ponieważ wspólna masa jest punktem odniesienia dla napięć.
To transmisja z szybkością 115 200 bitów na sekundę, 8 bitami danych, bez kontroli parzystości i z jednym bitem stopu. Identyczne ustawienia muszą obowiązywać po obu stronach, ponieważ różnice mogą powodować losowe znaki lub błędy odbioru.
Nie należy zakładać ich wzajemnej zgodności. Sygnał 5 V może uszkodzić wejście układu 3,3 V, dlatego warto użyć konwertera poziomów lub odpowiedniego dzielnika napięcia. RS-232 wymaga osobnego konwertera, ponieważ nie jest bezpośrednim UART-em TTL.
Najpierw sprawdź skrzyżowanie TX i RX, wspólną masę, prędkość transmisji oraz format ramki, na przykład 8N1. Następnie zweryfikuj poziomy napięć, odłącz inne urządzenia korzystające z tego samego UART-u i wykonaj test pętli zwrotnej, łącząc TX z RX.
Oceń artykuł

Średnia: 0.0 / 5 · 0 ocen

Tagi

uart rs-232 rs-485 arduino esp32
Autor Miłosz Szymczak
Miłosz Szymczak
Nazywam się Miłosz Szymczak i mam 14-letnie doświadczenie w dziedzinie elektroniki, robotyki i programowania. Moja przygoda z tymi tematami zaczęła się w młodym wieku, gdy zafascynowałem się możliwościami, jakie niesie ze sobą technologia. Od tego czasu nieustannie poszukuję nowych wyzwań i sposobów na wykorzystanie mojej wiedzy w praktyce. Lubię dzielić się z innymi tym, co sam odkryłem, a moim celem jest uproszczenie skomplikowanych zagadnień, aby były one zrozumiałe dla każdego. Piszę o różnych aspektach elektroniki i robotyki, starając się dostarczać rzetelne i aktualne informacje. Zawsze dokładam starań, aby moje teksty były dobrze zbadane, a przedstawiane w nich informacje były jasne i przystępne. Obserwuję najnowsze trendy w branży i staram się organizować wiedzę w sposób, który ułatwia czytelnikom zrozumienie omawianych tematów. Wierzę, że dzięki moim artykułom mogę pomóc innym w lepszym zrozumieniu otaczającego nas świata technologii.
Komentarze (0)
Dodaj komentarz