浏览代码

[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
Meco Man 2 年之前
父节点
当前提交
76885ca908
共有 1 个文件被更改,包括 1 次插入1 次删除
  1. 1 1
      bsp/stm32/libraries/HAL_Drivers/drv_usart.c

+ 1 - 1
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);