diff --git a/cpu/stm32f3/periph/uart.c b/cpu/stm32f3/periph/uart.c index 6cd047662b0e178aa8aa5eaba5a4e1ade1a7b334..5e1e046e8e34d55b2cdac4c413f3a146ac9b0ccc 100644 --- a/cpu/stm32f3/periph/uart.c +++ b/cpu/stm32f3/periph/uart.c @@ -190,6 +190,10 @@ static inline void irq_handler(uint8_t uartnum, USART_TypeDef *dev) char data = (char)dev->RDR; uart_config[uartnum].rx_cb(uart_config[uartnum].arg, data); } + else if (dev->ISR & USART_ISR_ORE) { + /* do nothing on overrun */ + dev->ICR |= USART_ICR_ORECF; + } if (sched_context_switch_request) { thread_yield(); }