STM32系列芯片通用定时器输出固定/可变PWM、输入捕获、输出比较三个功能的配置及其程序
**
输出固定/可变PWM
**
cubemx配置:
这里时钟树的APB1和APB2都设为50MHz,预分频设为4999,则分频系数为5000,频率为50MHz除以5000等于10khz的频率,ARR设置为199即PWM一个周期为20ms,占空比为50即5ms。
如上图所示,ARR就是咱设置的200即20ms的周期,CCR是输入捕获/比较寄存器设置的值,5ms的占空比,黑色的三条斜杆是CNT计数器,在递增计数模式下,CNT<CCR通道有效即为高电平,反之则反。
以下为输出固定PWM程序:
采用中断方式实现PWM输出
输出可变的PWM:
也是采用中断实现
添加两个变量在tim.c中
令脉宽变化即可输出变化的PWM.
输出比较,同样用TIM14,配置如下
输出比较这里选择翻转,即当CNT=CCR时状态翻转。程序如下:
两行代码搞定
输入捕获
输入捕获的原理即一个定时器输出PWM,用另外一个具有输入捕获的定时器才捕获输出的PWM,以此来验证输出的PWM正确性
配置如下::
TIM设置为固定输出PWM
TIM9设置输入捕获TIM14的脉宽
程序如下: