{
if (usart->reg->isr & (1 << STM_USART_ISR_RXNE)) {
usart->reg->icr = (1 << STM_USART_ICR_ORECF);
if (!ao_fifo_full(usart->rx_fifo)) {
ao_fifo_insert(usart->rx_fifo, usart->reg->rdr);
ao_wakeup(&usart->rx_fifo);
{
if (usart->reg->isr & (1 << STM_USART_ISR_RXNE)) {
usart->reg->icr = (1 << STM_USART_ICR_ORECF);
if (!ao_fifo_full(usart->rx_fifo)) {
ao_fifo_insert(usart->rx_fifo, usart->reg->rdr);
ao_wakeup(&usart->rx_fifo);