当前位置:   article > 正文

stm32学习——定时器部分2(输出比较)_output compare no output

output compare no output

一、TIM输出比较

OC(Output Compare)
通过比较CNT与CCR(Capture/Compare Register 捕获/比较寄存器)值的关系来输出电平实现置1、置0或翻转的操作,用于输出一定频率和占空比的PWM波形。

二、PWM简介

PWM(Pulse Width Modulation)脉冲宽度调制
参数:频率=1/T;占空比(高电平的占比,例如T=100ms,输出波形中高电平占40ms,则占空比为40%)=Ton/T;分辨率=占空比变化步距(相当于等差变换的差)
由于通断电的频率很快,所以可以使电机处于一个中等转速,调整占空比就可以调整电机的转速。

三、PWM模式1和PWM模式2

模式1:向上计数时,CNT<CCR,REF(参考信号)置1;CNT>CCR,REF置0;
模式2反之。

四、参数计算

PWM频率:Freq=CK_PSC/(PSC+1)/(ARR+1)
PWM占空比:Duty=CCR/(ARR+1)
PWM分辨率:Reso=1/(ARR+1)

五、舵机

一种根据输入PWM信号占空比来控制输出角度的装置(这里是SG90)。
信号要求:周期为20ms,高电平宽度为0.5ms~2.5ms

六、cubemx配置PWM驱动舵机 

1.配置debug为SW,RCC为外部晶振;
2.配置时钟TIM2,将通道1、2配置为PWM通道; 

3.周期20ms=(7200*200)/72000000,所以配置PSC为7200-1,CCR为200-1;

输入模式为PWM模式1(向上计数时,CNT<CCR,REF(参考信号)置1;CNT>CCR,REF置0)
Pulse为占空比,设置初始脉冲时间为50(即50/100=0.5ms) 

 4.新建一个.c文件和一个.h文件

在.h文件内将各个关键角度对应的脉冲时间进行定义,这样更加直观

 在.c文件中设置每转动一次角度等待1000ms(1s)

 5.初始化PWM,在main.c的while中用pwm.c文件中定义的函数写入想要的角度即可,编译并运行。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/791378
推荐阅读
相关标签
  

闽ICP备14008679号