From fd08d0ba503da88890ab3884df11903b5a59c894 Mon Sep 17 00:00:00 2001 From: "Aubr.Cool" Date: Thu, 13 Apr 2017 12:47:49 +0800 Subject: [PATCH] [Bsp] stm32f10x usart correct rx parity err --- bsp/stm32f10x/drivers/usart.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/bsp/stm32f10x/drivers/usart.c b/bsp/stm32f10x/drivers/usart.c index e5418c14a4..60f34562ba 100644 --- a/bsp/stm32f10x/drivers/usart.c +++ b/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); } -- GitLab