gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 01:25:30 25 4
gpt4 key购买 nike

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

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

最佳答案

您可以与 DMA 中断并行使用 UART 空闲检测中断。
我已经多次在 ST32F0xx 处理器上使用过它,它运行良好。
F4 和 F7 处理器上也应该提供空闲检测。

互联网上有一些教程针对您的问题,并提供空闲检测的解决方案。
例如。看看这个 this one .

关于stm32 - 指定超时后有意接收完成的 UART DMA 中断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52647733/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com