The application continuously checks the UDRE bit in the USART Status Register to identify when the USART has finished sending a byte. Then the next byte can be loaded to the data register. When receiving data, the application continuously checks the RXC bit in the USART Status Register to identify when the USART has completed receiving a byte. In this case, the CPU waits for the reception of a byte and then proceed with further processing.