STM32 HAL库-PWM控制舵机

好记性不如烂笔头,最近项目用到了stm32h5芯片,也是边做边学。

舵机控制原理,一个周期20ms,前高电平表示舵机转动角度,0.5ms到2.5ms,代表转动角度0-180或者360度,后半段为低电平

stm32CUBEMX里配置时钟然后再配置外设。

舵机频率 1/0.02=50hz

STM32产生PWM步骤:

1:使用TIMER来钟输出比较来做

2:首先知道定时器X,连接到哪个时钟上的,然后可以通过TIMx_PSC预分频系数,

定时器频率=时钟/PSC;

计数器:TIMx_CNT ,每隔一个周期变化一次

重装载值:TIMx_ARR,主要是用来和CNT比较,如果不在这个值内,就重新设置CNT

Fpwm = 主频 / ((ARR+1)*(PSC+1))(单位:Hz)

占空比

duty circle = TIM3->CCR2 / ARR(单位:%)

 

例子:控制舵机 1度为0.5+1/90=0.51ms,计数器周期<=1/90,现在频率设置为250/2那么周期为2/250,那么他这个周期小于1/90,到达20ms时候ARR为2500也不大于65535,所以可以用,那么

ARR=2500,

psc=1000-1;

CRR=

psc=1000-1;

那么1份就是20/2500=2/250=1/125ms

那么一度就是0.5ms+1/90ms->63+2,约等于

所以CRR的值为默认为63,x度为63+2*x

代码讲究一个思路,芯片不一样都无所谓,主要是搞清原理,然后学习芯片相关部分。边学边用,不一定要新芯片从头学起。奥里给

  • 10
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值