Datasheet

Table Of Contents
The Data OverRun (DOR) Flag indicates data loss due to a Receiver buffer full condition. A Data
OverRun occurs when the receive buffer is full (two characters), it is a new character waiting in the
Receive Shift Register, and a new start bit is detected. If the DOR Flag is set there was one or more serial
frame lost between the frame last read from UDR, and the next frame read from UDR. For compatibility
with future devices, always write this bit to zero when writing to UCSRA. The DOR Flag is cleared when
the frame received was successfully moved from the Shift Register to the receive buffer.
The Parity Error (PE) Flag indicates that the next frame in the receive buffer had a parity error when
received. If parity check is not enabled the PE bit will always be read zero. For compatibility with future
devices, always set this bit to zero when writing to UCSRA. For more details see Parity Bit Calculation
and Parity Checker.
23.7.5. Parity Checker
The Parity Checker is active when the high USART Parity mode (UPM1) bit is set. Type of parity check to
be performed (odd or even) is selected by the UPM0 bit. When enabled, the Parity Checker calculates the
parity of the data bits in incoming frames and compares the result with the parity bit from the serial frame.
The result of the check is stored in the receive buffer together with the received data and stop bits. The
Parity Error (UPE) Flag can then be read by software to check if the frame had a parity error.
The UPE bit is set if the next character that can be read from the receive buffer had a parity error when
received and the parity checking was enabled at that point (UPM1 = 1). This bit is valid until the receive
buffer (UDR) is read.
23.7.6. Disabling the Receiver
In contrast to the Transmitter, disabling of the Receiver will be immediate. Data from ongoing receptions
will therefore be lost. When disabled (i.e., the RXEN is set to zero) the Receiver will no longer override
the normal function of the RxD port pin. The Receiver buffer FIFO will be flushed when the Receiver is
disabled. Remaining data in the buffer will be lost.
23.7.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 UDR I/O location until the RXC Flag is cleared. The following code
example shows how to flush the receive buffer.
Assembly Code Example
(1)
USART_Flush:
sbis r16, RXC
ret
in r16, UDR
rjmp USART_Flush
C Code Example
(1)
void USART_Flush( void )
{
unsigned char dummy;
while ( UCSRA & (1<<RXC) ) dummy = UDR;
}
Note:  1. See About Code Examples.
Related Links
About Code Examples on page 19
Atmel ATmega32A [DATASHEET]
Atmel-8155I-ATmega32A_Datasheet_Complete-08/2016
202