打印
[STM32H5]

DMA搬运USART数据为啥不走回调?

[复制链接]
394|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Clyde011|  楼主 | 2025-5-4 13:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
设好了中断和DMA通道,但数据搬完后啥都没触发,是不是哪里屏蔽了?

使用特权

评论回复
沙发
Clyde011|  楼主 | 2025-5-4 13:39 | 只看该作者
DMA handle结构体别搞错,否则触发不了。

使用特权

评论回复
板凳
Uriah| | 2025-5-4 13:39 | 只看该作者
HAL_DMA_IRQHandler有没有正确调用?

使用特权

评论回复
地板
Pulitzer| | 2025-5-4 13:40 | 只看该作者
有些时候是DMA方向设反了。

使用特权

评论回复
5
Bblythe| | 2025-5-4 13:41 | 只看该作者
用断点看看DMA标志有没有置位。

使用特权

评论回复
6
Wordsworth| | 2025-5-4 13:42 | 只看该作者
看一下中断优先级,太低也可能不响应。

使用特权

评论回复
7
万图| | 2025-5-4 13:42 | 只看该作者
我用的是双缓冲+空闲中断组合,才触发。

使用特权

评论回复
8
童雨竹| | 2025-5-4 13:43 | 只看该作者
USART有没有Enable IDLE中断?

使用特权

评论回复
9
帛灿灿| | 2025-5-4 13:44 | 只看该作者
HAL库版本有的要手动注册回调。

使用特权

评论回复
10
周半梅| | 2025-5-4 13:45 | 只看该作者
NVIC有没有开DMA的中断?

使用特权

评论回复
11
公羊子丹| | 2025-5-4 13:46 | 只看该作者
DMA通道号设对了吗?

使用特权

评论回复
12
冰春彩落下| | 2025-5-14 14:08 | 只看该作者
在使用STM32H5通过DMA搬运USART数据时,若已设置好中断和DMA通道但数据搬完后未触发回调,可能存在DMA句柄和回调函数配置问题

使用特权

评论回复
13
暖了夏天蓝了海| | 2025-5-14 14:39 | 只看该作者
DMA句柄结构体配置错误会导致触发机制失效。需确保在初始化DMA时,句柄中的各项参数(如传输方向、地址、数据宽度等)与硬件实际需求完全匹配。

使用特权

评论回复
14
暖了夏天蓝了海| | 2025-5-14 14:39 | 只看该作者
DMA句柄结构体配置错误会导致触发机制失效。需确保在初始化DMA时,句柄中的各项参数(如传输方向、地址、数据宽度等)与硬件实际需求完全匹配。

使用特权

评论回复
15
淡漠安然| | 2025-5-14 15:10 | 只看该作者
式注册传输完成、半传输完成或错误回调,否则默认弱函数(Weak Function)不会执行实际逻辑。

使用特权

评论回复
16
远山寻你| | 2025-5-14 16:00 | 只看该作者
DMA中断优先级低于其他任务,可能导致响应延迟或被屏蔽。需在NVIC配置中适当提高DMA中断优先级,确保其能及时抢占CPU资源。

使用特权

评论回复
17
夜阑风雨| | 2025-5-14 16:50 | 只看该作者
仅配置中断通道但未在NVIC中使能对应中断,会导致硬件标志位无法触发软件中断服务程序。需通过HAL_NVIC_EnableIRQ启用相关中断。

使用特权

评论回复
18
光辉梦境| | 2025-5-14 17:09 | 只看该作者
传输方向错误,若DMA传输方向(如设置为内存到内存而非外设到内存)与实际需求不符,数据搬运虽可能完成,但不会触发预期的中断或回调。需检查DMA_InitTypeDef中的Direction字段。

使用特权

评论回复
19
一秒落纱| | 2025-5-14 18:10 | 只看该作者
未启用循环模式(Circular Mode)时,单次传输完成后需手动重新启动DMA。若未处理传输完成事件,可能导致后续数据无法继续搬运

使用特权

评论回复
20
三生万物| | 2025-5-14 19:00 | 只看该作者
未正确关联USARTDMA:需通过__HAL_LINKDMA宏将USART句柄与DMA句柄绑定,否则USART无法触发DMA传输请求。例如

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

73

主题

4574

帖子

0

粉丝