STM32F3两个定时器里产生出来的PWM不能同步

2019-07-14 16:06发布

在使用STM32F3的tiM1和TIM8产生8路PWM时,有一个问题,就是最后使能TIM1和TIM8时,由于不能同时使能,所以两个定时器里产生出来的PWM不能同步,有一个相位差。
用库函数使能如下,发现相位差较大。
TIM_Cmd(TIM1,ENABLE);//使能TIM1
TIM_Cmd(TIM8,ENABLE);//使能TIM8
改用寄存器使能如下:
TIM1->CR1|=0x01;     //使能定时器1
TIM8->CR1|=0x01;     //使能定时器8
使用寄存器使能可以减小相位差,但是不能使两个PWM同步,请问有没有人有办法可以帮我解决这个困难?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
9条回答
gXDhn
1楼-- · 2019-07-15 05:08
  /* Select the Master Slave Mode */
   TIM_SelectMasterSlaveMode(TIM1, TIM_MasterSlaveMode_Enable);
   /* Master Mode selection */
   TIM_SelectOutputTrigger(TIM1, TIM_TRGOSource_Enable);

   TIM_SelectSlaveMode(TIM8, TIM_SlaveMode_Trigger);
   TIM_SelectInputTrigger(TIM8, TIM_TS_ITR0);

运行后T1 MMS=001    T8 SMS=0X06 ;
songxiansheng
2楼-- · 2019-07-14 22:02
好的,试试,多谢
blueshine
3楼-- · 2019-07-15 03:16
其中一个定时器的主模式输出设置为使能,即TIMx_CR2的MMS为001。
另外一个设置为从模式,方式选触发。TIMx_SMCR的SMS为110。
这样设置好了后启动第一个定时器时,第二个会自动启动。
songxiansheng
4楼-- · 2019-07-15 10:44
 精彩回答 2  元偷偷看……
songxiansheng
5楼-- · 2019-07-15 11:13
一样不同步
songxiansheng
6楼-- · 2019-07-15 16:41
  改成TIM_SelectSlaveMode(TIM8, TIM_SlaveMode_Gated);,就好了

一周热门 更多>