使用STM32F103ZET6的TIM2和TIM3产生8路PWM时,由于不能同时使能TIM2和TIM3,所以两个定时器里产生出来的PWM不能同步,有一个相位差。

2019-07-21 06:44发布

        在使用STM32F103ZET6的TIM2和TIM3产生8路PWM时,有一个问题,就是最后使能TIM2和TIM3时,由于不能同时使能,所以两个定时器里产生出来的PWM不能同步,有一个相位差。
用库函数使能如下,发现相位差较大。
TIM_Cmd(TIM2,ENABLE);//使能TIM2
TIM_Cmd(TIM3,ENABLE);//使能TIM3
改用寄存器使能如下:
TIM2->CR1|=0x01;     //使能定时器2
TIM3->CR1|=0x01;     //使能定时器3
使用寄存器使能可以减小相位差,但是不能使两个PWM同步,请问有没有人有办法可以帮我解决这个困难?

   
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
xuande
1楼-- · 2019-07-21 07:33
定时器有种级联的工作模式,应该可以解决这问题。

不过,考虑过只用一个定时器的可能性吗?
Zong_Yang
2楼-- · 2019-07-21 10:44
回复【2楼】xuande:
---------------------------------
谢谢你的提醒,我会去看一下定时器作为PWM输出时能不能解决我的问题,我想过用一个定时器,但是TIM1/TIM8最多也只能产生7路的PWM输出,不够8路的。
正点原子
3楼-- · 2019-07-21 10:45
回复【3楼】Zong_Yang:
---------------------------------
如果8路波形完全一样,那你直接分出去就是了....
bavol
4楼-- · 2019-07-21 16:10
回复【3楼】Zong_Yang:
---------------------------------
请问你现在找到解决方案了吗,我现在也需要一个八路同步的PWM, 中心对齐带死区控制。希望能和你交流
风呼呼
5楼-- · 2019-07-21 20:50
 精彩回答 2  元偷偷看……
风呼呼
6楼-- · 2019-07-21 22:54
bavol 发表于 2015-7-21 09:32
**** 作者被禁止或删除 内容自动屏蔽 ****

请问解决了吗?可以分享下不

一周热门 更多>