15.8.7 Flushing the Receive Buffer
The receiver buffer FIFO will be flushed when the Receiver is disabled, i.e., the buffer will be emptied of its contents. Unread data will be lost. If the buffer has to be flushed during normal operation, due to for instance an error condition, read the UDRn I/O location until the RXCn Flag is cleared.
Assembly Code Example
The following code shows how to flush the receive buffer of USART0.
USART_Flush: in r16, UCSR0A sbrs r16, RXC ret in r16, UDR0 rjmp USART_Flush
void USART_Flush( void ) { unsigned char dummy; while ( UCSR0A & (1<<RXC) ) dummy = UDR0; }