diff options
| author | winfenggao <[email protected]> | 2022-08-19 10:24:43 +0800 |
|---|---|---|
| committer | Man, Jianting (Meco) <[email protected]> | 2022-08-25 10:25:34 -0400 |
| commit | ae66e67dee1140420c6191715cb5437cb173e781 (patch) | |
| tree | 68ab7f02bce9b4fafb41a3334d103e8265c76aeb | |
| parent | c67cbdb30cc86fb442fc4ae9fdc7f658beffa900 (diff) | |
bug:
UART_FLAG_TC 不能在中断里CLEAR;
因为函数 static int stm32_putc(struct rt_serial_device *serial, char c)里发送完成后
while 循环等这个标志退出,中断服务函数CLEAR后,此处进入死循环
| -rw-r--r-- | bsp/stm32/libraries/HAL_Drivers/drv_usart.c | 4 |
1 files changed, 0 insertions, 4 deletions
diff --git a/bsp/stm32/libraries/HAL_Drivers/drv_usart.c b/bsp/stm32/libraries/HAL_Drivers/drv_usart.c index 97de96b22d..2f60d7edfc 100644 --- a/bsp/stm32/libraries/HAL_Drivers/drv_usart.c +++ b/bsp/stm32/libraries/HAL_Drivers/drv_usart.c @@ -457,10 +457,6 @@ static void uart_isr(struct rt_serial_device *serial) { UART_INSTANCE_CLEAR_FUNCTION(&(uart->handle), UART_FLAG_TXE); } - if (__HAL_UART_GET_FLAG(&(uart->handle), UART_FLAG_TC) != RESET) - { - UART_INSTANCE_CLEAR_FUNCTION(&(uart->handle), UART_FLAG_TC); - } if (__HAL_UART_GET_FLAG(&(uart->handle), UART_FLAG_RXNE) != RESET) { UART_INSTANCE_CLEAR_FUNCTION(&(uart->handle), UART_FLAG_RXNE); |
