1
0
Эх сурвалжийг харах

[stm32][drv_usart]修复串口中断接收丢数据问题

使用串口中断方式接收数据,读取数据时会自动清除标识,这里再次清除中断标识会导致下一个数据丢失。
使用finsh就可以测出这个问题,中断接收丢数据时无法查看历史命令。
HubretXie 6 жил өмнө
parent
commit
706c0410cd

+ 0 - 2
bsp/stm32/libraries/HAL_Drivers/drv_usart.c

@@ -235,8 +235,6 @@ static void uart_isr(struct rt_serial_device *serial)
         (__HAL_UART_GET_IT_SOURCE(&(uart->handle), UART_IT_RXNE) != RESET))
         (__HAL_UART_GET_IT_SOURCE(&(uart->handle), UART_IT_RXNE) != RESET))
     {
     {
         rt_hw_serial_isr(serial, RT_SERIAL_EVENT_RX_IND);
         rt_hw_serial_isr(serial, RT_SERIAL_EVENT_RX_IND);
-        /* Clear RXNE interrupt flag */
-        UART_INSTANCE_CLEAR_FUNCTION(&(uart->handle), UART_FLAG_RXNE);
     }
     }
 #ifdef RT_SERIAL_USING_DMA
 #ifdef RT_SERIAL_USING_DMA
     else if ((uart->uart_dma_flag) && (__HAL_UART_GET_FLAG(&(uart->handle), UART_FLAG_IDLE) != RESET) &&
     else if ((uart->uart_dma_flag) && (__HAL_UART_GET_FLAG(&(uart->handle), UART_FLAG_IDLE) != RESET) &&