Browse Source

Merge pull request #716 from AubrCool/fix-stm32f10x.usart.parity.err

[Bsp] stm32f10x usart correct rx parity err
Bernard Xiong 8 years ago
parent
commit
cb0a4962e2
1 changed files with 5 additions and 1 deletions
  1. 5 1
      bsp/stm32f10x/drivers/usart.c

+ 5 - 1
bsp/stm32f10x/drivers/usart.c

@@ -15,6 +15,7 @@
  * 2015-01-31     armink       make sure the serial transmit complete in putc()
  * 2016-05-13     armink       add DMA Rx mode
  * 2017-01-19     aubr.cool    add interrupt Tx mode
+ * 2017-04-13     aubr.cool    correct Rx parity err
  */
 
 #include "stm32f10x.h"
@@ -262,7 +263,10 @@ static void uart_isr(struct rt_serial_device *serial) {
 
     if(USART_GetITStatus(uart->uart_device, USART_IT_RXNE) != RESET)
     {
-        rt_hw_serial_isr(serial, RT_SERIAL_EVENT_RX_IND);
+        if(USART_GetFlagStatus(uart->uart_device, USART_FLAG_PE) == RESET)
+        {
+            rt_hw_serial_isr(serial, RT_SERIAL_EVENT_RX_IND);
+        }
         /* clear interrupt */
         USART_ClearITPendingBit(uart->uart_device, USART_IT_RXNE);
     }