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 <william.sanfili...@juul.com>
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
 }
 

Reply via email to