硬汉嵌入式论坛

 找回密码
 立即注册
查看: 823|回复: 3
收起左侧

[有问必答] 使用STM32是否能通过一个定时器的更新事件触发另外一个定时器的PWM DMA更新

[复制链接]

9

主题

16

回帖

43

积分

新手上路

积分
43
发表于 2025-1-31 23:01:23 | 显示全部楼层 |阅读模式
目前在学习无刷电机,现在在跑开环控制,想问问是否能实现这样的一个功能,TIM1用于3项PWM的生成,分频系数与period都是固定的,这样PWM的频率和100%占空比的值就是固定的,所以我可以直接写3个表格去实现3路PWM的占空比控制,且每路相位相差120度,然后我使用TIM2的更新事件去触发TIM1的PWM DMA更新,也就是比如我设置40usTIM2就会有一个更新事件,然后TIM1每40us就根据我3个表格的值去顺序循环输出不同的PWM
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117517
QQ
发表于 2025-2-1 16:52:45 | 显示全部楼层
这个可以使用TIM1的UP事件,触发任意GPIO+DMA方式实现三路PWM。

这个在之前的H7的BSP驱动里面做过两期教程,第41和43章,不过这个里面是用的DMAMUX
https://forum.anfulai.cn/forum.p ... &extra=page%3D1


回复

使用道具 举报

102

主题

573

回帖

894

积分

金牌会员

积分
894
QQ
发表于 2025-2-1 20:39:03 | 显示全部楼层
一般不都是TIM1的3个通道去生成pwm,然后第4个通道去触发ADC采样,然后在ADC的DMA中断里面去做计算和PWM更新
回复

使用道具 举报

9

主题

16

回帖

43

积分

新手上路

积分
43
 楼主| 发表于 2025-2-2 08:25:28 | 显示全部楼层
会飞的猪_2020 发表于 2025-2-1 20:39
一般不都是TIM1的3个通道去生成pwm,然后第4个通道去触发ADC采样,然后在ADC的DMA中断里面去做计算和PWM更 ...

对的,我看一些电机IC原厂都是这样弄的,不过他没用ADC的DMA他直接用ADC中断
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-8-12 09:32 , Processed in 0.038675 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表