If an UART is receiving data continuously, can I also send data using the same UART while receiving data at the same time?


2 Answers 2


Simply, you can.

In addition to charansai's answer, if the MCU supports hardware UART then it becomes easier. Since the transmit/receive process is done via the hardware itself, you don't have to wait for a transmit or a receive process to complete. Depending on the setup, the module raises either an interrupt or a flag once the process is complete.

Even if a software-UART is used, it's still possible by using some programming skills.

  • 2
    \$\begingroup\$ To be specific, a UART consists of a transmitter and a receiver, both completely independent of each other. They are used independently. As an aside, you can implement a serial port in software but it's not realistic to call that a Universal Asynchronous Receiver/Transmitter. I doubt if the software implementations are Universal. Recommend you keep the term UART for the hardware implementation, it means more than 'serial port'. \$\endgroup\$
    – TonyM
    Commented Dec 28, 2017 at 8:20
  • 1
    \$\begingroup\$ The software implementations can be universal - but they will provide only a limited range of baud rates. On AVR they would also require low interrupt load to keep the timings stable. \$\endgroup\$
    – Turbo J
    Commented Dec 28, 2017 at 12:44

Please read basics about UART, at least wiki! Here is the quote from wiki

Communication may be simplex (in one direction only, with no provision for the receiving device to send information back to the transmitting device), full duplex (both devices send and receive at the same time) or half duplex (devices take turns transmitting and receiving).

So, full duplex communication is possible.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.