summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMeco Man <[email protected]>2022-08-04 19:08:28 -0400
committerMan, Jianting (Meco) <[email protected]>2022-08-04 22:51:34 -0400
commit76885ca908319d2f6b587ccd363bffa4f038cbfc (patch)
tree51463e106256033a3be795d1d79971c0e4a0e846
parentc33289ace78e7413005c0ea7e4e174ac8d2c0b58 (diff)
[stm32][drv_serial] 修复recv_len意外为负(即很大正数)的问题
https://github.com/RT-Thread/rt-thread/issues/6106 https://github.com/RT-Thread/rt-thread/issues/4467#issuecomment-850814143
-rw-r--r--bsp/stm32/libraries/HAL_Drivers/drv_usart.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/bsp/stm32/libraries/HAL_Drivers/drv_usart.c b/bsp/stm32/libraries/HAL_Drivers/drv_usart.c
index 63644bc719..97de96b22d 100644
--- a/bsp/stm32/libraries/HAL_Drivers/drv_usart.c
+++ b/bsp/stm32/libraries/HAL_Drivers/drv_usart.c
@@ -489,7 +489,7 @@ static void dma_isr(struct rt_serial_device *serial)
}
else
{
- recv_len = recv_total_index - uart->dma_rx.last_index;
+ recv_len = serial->config.bufsz - uart->dma_rx.last_index + recv_total_index;
}
uart->dma_rx.last_index = recv_total_index;
rt_hw_interrupt_enable(level);