最近使用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不影响频率。