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

一、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文件中定义的函数写入想要的角度即可,编译并运行。

  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值