指定超时后有意接收完成 UART DMA 中断

Aka*_*kay 5 stm32 dma stm32f4 stm32f7

我已将 UART 配置为以 DMA 模式接收,其中缓冲区的大小约为 64 字节。因此,基本上,HAL_UART_RxCpltCallback() DMA 接收完成中断仅在接收到 64 个字符时才会触发。

STM32中有没有一种方法可以为DMA Rx配置超时,当缓冲区仅部分填充(即接收到的字符少于64个)并且我们在指定的超时时间内不再接收到任何字符时,DMA将然后引发相同的基于 HAL_UART_RxCpltCallback() 的中断,让消费者使用 UART 当前接收到的任何部分数据?

P__*_*J__ 3

这很简单,但你必须使用 USART 接收器超时中断。 在此输入图像描述

  • @MustaphaLarhrouch 对于进行 STM32 uC 开发的人来说确实如此。我在你的简历和 SO 答案中没有看到任何与 uC 相关的经验。那么作为一个Web开发者你如何判断它呢? (2认同)
  • 顺便说一句 - 有 DV 解释吗? (2认同)