diff options
| author | Bernard Xiong <[email protected]> | 2017-04-13 13:08:00 +0800 |
|---|---|---|
| committer | GitHub <[email protected]> | 2017-04-13 13:08:00 +0800 |
| commit | cb0a4962e20baec771c77844644b84d02708be70 (patch) | |
| tree | 66b3cb9d3b4565c8e7651b8fc119979ef65e958a | |
| parent | d185f093038a96ede0d898c2beabaa2bd03ea331 (diff) | |
| parent | fd08d0ba503da88890ab3884df11903b5a59c894 (diff) | |
Merge pull request #716 from AubrCool/fix-stm32f10x.usart.parity.err
[Bsp] stm32f10x usart correct rx parity err
| -rw-r--r-- | bsp/stm32f10x/drivers/usart.c | 6 |
1 files changed, 5 insertions, 1 deletions
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); } |
