STM32 PWM的理解

脉冲宽度调制(PWM),是英文“Pulse Width Modulation” 的缩写,简称脉宽调制。

脉冲:方波,频率(freq)                     

宽度:高电平的宽度,决定了占空比(duty)

占空比:就是我们高电平占整个周期的百分比

    占空比25%          

      占空比50%        https://note.youdao.com/yws/public/resource/e2eac0dd45493be783e77563084fc9c3/xmlnote/92860AE089D04E71A076CAC5E979ECAD/3649EE212FC04FC99E19E78A70248B62/12735

占空比变化动图:

https://note.youdao.com/yws/public/resource/e2eac0dd45493be783e77563084fc9c3/xmlnote/92860AE089D04E71A076CAC5E979ECAD/35AB903B6E674AE3AB4BAEF1D96A9087/12749

占空比控制舵机角度:

                                                      

PWM1和PWM2模式

1.定义

PWM 模式 1——只要 TIMx_CNT < TIMx_CCR1,通道 1 便为有效状态,否则为无效状态。

PWM 模式 2——只要 TIMx_CNT < TIMx_CCR1,通道 1 便为无效状态,否则为有效状态。

TIMx_CNT由TIM_TimeBaseStructure.TIM_Period决定,也就是计数值,分频系数一定的情况下,它决定我们的PWM的输出频率是多少。

TIMx_CCR1由TIM_SetComparex(x:1、2、3、4)函数决定,也就是比较值。

有效状态由TIM_OCInitStructure.TIM_OCPolarity决定,假如我们设置高电平为有效电平,反之低电平就为无效电平。

比较值决定我们的PWM的占空比,当我们计数值是0~99,因为是高电平为有效电平,当我们计数没有到50的时候,我们都是高电平,大于50的时候,就是无效电平,即低电平。

其中我们比较值可以直接在TIM_OCInitStructure.TIM_Pulse=后面直接填上,也可以掉用一个专门的函数TIM_SetCompare1(TIMx,比较值);它由2个参数,第一个参数是哪个定时器,第二个参数是我们的比较值大小。且我们也一定要注意这个函数是哪个通道使用。

注:

通道1:TIM_SetCompare1

通道2:TIM_SetCompare2

通道3:TIM_SetCompare3

通道4:TIM_SetCompare4

定时器多通道的理解如图

问题:假如我们的LED1和LED2同时共用TIM1,分别为通道1、通道2,那么CH1和CH2输出频率可以不一样吗?占空比可以不一样吗?

答:输出频率肯定是一样的,因为是同一个定时器,占空比由比较值决定,可以不一样。

注意:TIM1是高级定时器,要额外添加语句TIM_CtrlPWMOutputs(TIM1,ENABLE)。

                                

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值