[STM32G4] 定时器输出比较通道突然没波形,怀疑跟DMA触发有关

[复制链接]
148|10
Uriah 发表于 2025-10-7 07:47 | 显示全部楼层 |阅读模式
项目里用TIM1做PWM输出,DMA更新CCR值。运行一段时间后,有时PWM通道突然没波形,好像被暂停了一样。DMA状态是正常的,中断也还在跑,就是输出脚静止不变。重新初始化定时器又恢复。怀疑是不是DMA和定时器触发同步出问题,但还没找到根因。
Clyde011 发表于 2025-10-7 07:53 | 显示全部楼层
建议再加个标志位监控一下DMA完成回调,看它到底有没有被触发。
公羊子丹 发表于 2025-10-7 07:56 | 显示全部楼层
我遇到过类似的,最后发现是DMA传输模式设置成循环时没正确重启触发。
周半梅 发表于 2025-10-7 07:56 | 显示全部楼层
有时候定时器的更新事件没同步出去,导致DMA不再触发。
帛灿灿 发表于 2025-10-7 07:58 | 显示全部楼层
你要不要试试关掉预装载,看是不是缓存问题?
童雨竹 发表于 2025-10-7 07:59 | 显示全部楼层
我觉得可以在出问题的时候打印DMA的CNDTR值,看传输有没有卡住。
万图 发表于 2025-10-7 08:01 | 显示全部楼层
是不是主从模式的触发没对上?我以前TIM1和TIM8联动就遇过。
Wordsworth 发表于 2025-10-7 08:02 | 显示全部楼层
如果是双缓冲DMA模式,可能是第二缓冲区没切过去。
Bblythe 发表于 2025-10-7 08:03 | 显示全部楼层
我有次发现是因为GPIO重映射了,信号其实还在跑但脚没输出。
Pulitzer 发表于 2025-10-7 08:03 | 显示全部楼层
感觉像是DMA挂起但中断还在跑,能不能手动重启DMA验证一下?
 楼主| Uriah 发表于 2025-10-7 08:04 | 显示全部楼层
你试试打开波形测TRGO信号,看定时器是不是还在更新。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

158

主题

6218

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部