The UART module is abstraction module that caters to instances of the Universal Synchronous and Asynchronous Receiver and Transmitter USART) modules that is present in PIC and AVR devices. The USART is used to transfer data from one device to the other. A USART is able to transmit a byte stream on an I/O pin (the TX pin), and receive a byte stream on another I/O pin (the RX pin). The rate at which bits are shifted out on the I/O pins is called the baud rate. The baud rate can be selected by the user, and configured in MCC and START.
In general, the USART can operate in:
The USARTs are able to generate interrupts when a byte has been transmitter or received. A USART driver can therefore either be:
Some devices may have DMA controllers. In such devices, the USART may also have a DMA-driven driver.