This is an automated email from the ASF dual-hosted git repository.
wes3 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/mynewt-core.git
The following commit(s) were added to refs/heads/master by this push:
new 1883c01 hw/mcu/stm/stm32_common: Clear overrun error (#2325)
1883c01 is described below
commit 1883c011cdbe15a62d30df4a162e03730dd43705
Author: wes3 <[email protected]>
AuthorDate: Mon Jul 6 10:52:03 2020 -0700
hw/mcu/stm/stm32_common: Clear overrun error (#2325)
The uart irq handler for certain stm32 mcu's was not handling
the clearing of an rx overrun error. This code should handle it
properly.
---
hw/mcu/stm/stm32_common/src/hal_uart.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/hw/mcu/stm/stm32_common/src/hal_uart.c
b/hw/mcu/stm/stm32_common/src/hal_uart.c
index 6671d28..394a9f6 100644
--- a/hw/mcu/stm/stm32_common/src/hal_uart.c
+++ b/hw/mcu/stm/stm32_common/src/hal_uart.c
@@ -223,6 +223,11 @@ uart_irq_handler(int num)
if (isr & USART_ISR_ORE) {
regs->ICR |= USART_ICR_ORECF;
}
+#else
+ /* clear overrun */
+ if (isr & USART_SR_ORE) {
+ (void)RXDR(regs);
+ }
#endif
}