代码改变世界

TIM_SetCompare1()函数没起作用

2019-05-16 20:12  斑鸠,一生。  阅读(10438)  评论(0编辑  收藏  举报

    最近使用stm32f103c8t6做控制器,需要实时调整PWM的占空比,由于TIM_SetComparex()是常用的修改PWM占空比的函数。

  

现象:在主函数里面调用TIM_SetComparex()函数,但是有时候该函数起作用,有时候该函数不起作用。

解决步骤:

                 1.查找现成可修改占空比的程序

                 2.比较两个版本定时器的配置情况

实验现象:

                   1.在stm32f103c8t6中,TIM_SetComparex()函数失效的版本中,高级定时器TIM1的TIM_ClockDivision设定为2

                    2.在stm32f103c8t6中,TIM_SetComparex()函数有效的版本中,高级定时器TIM1的TIM_ClockDivision设定为0或1

实验结论:

                 1.在stm32f103c8t6中,高级定时器TIM1的TIM_ClockDivision设定为0或1或2,并没有影响PWM的频率。

                  2.在stm32f103c8t6中,高级定时器TIM1的TIM_ClockDivision设定为0或1,函数TIM_SetCompare1()

                  3. 在stm32f103c8t6中,高级定时器TIM1的TIM_ClockDivision设定为2,函数TIM_SetCompare1()效。

                  4. 2.在stm32f103c8t6中,高级定时器TIM1的分频是由结构体的TIM_Prescaler决定。TIM_ClockDivision不影响频率。