• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

如何理解STM32的PWM输出模式

huihui163 2017-09-12 浏览量:1683

如何理解STM32的PWM输出模式

PWM模式1-在向上计数时,一旦TIMx_CNT<TIMx_CCR1时通道1为有效电平,否则为无效电平;在向下计数时,一旦TIMx_CNT>TIMx_CCR1时通道1为无效电平(OC1REF=0),否则为有效电平(OC1REF=1)

111PWM模式2-在向上计数时,一旦TIMx_CNT<TIMx_CCR1时通道1为无效电平,否则为有效电平;在向下计数时,一旦TIMx_CNT>TIMx_CCR1时通道1为有效电平,否则为无效电平。


0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 先理解这个有效电平:在TIMx_CCER中有个CCxP位,该位是用于设置有效电平的:0为低电平有效,1为高电平有效。

    QQ截图20170912112707.jpg

    设置好这个为后,就设置了有效电平了,我们假设设为1,高电平是有效电平。

    再看下这两个模式的区别:向上计数模式下,使能定时器后TIMx_CNT会从0开始往上数,在模式1中,如果CNT小于设置的值(TIMx_CCR1的值)那么此时CC1通道输出的是高电平,大于设置的值时是低电平,CNT继续往上数,到重装寄存器的值时会更新为0,继续一个周期;模式2中,反过来,小于设置值时是低电平,大于设置值时是高电平。同理,在向下计数模式下,模式1也是小于设置值高电平,大于设置值低电平,模式2小于设置值时低电平,大于设置值时高电平,只是定时器计数模式不一样。

    • 发布于 2017-09-12
    • 举报
    • 评论 2
    • 1
    • 0
huihui163 回复了 赤心木zqw:是记一次数就和ccr比较吗,高电平时间也就是ccr 回复
huihui163 回复了 赤心木zqw:我理解的额对吗 回复

其他答案 数量:7
  • 两种PWM模式的区别就是输出电平的极性相反,PWM波的波形要么是高电平,要么是低电平,至于有效电平和无效电平的话,其实就是您的高电平或者底电平。

    PWM原理如下:

    PWM.png

    图中,我们假定定时器工作在向上计数 PWM 模式,且当 CNT<CCRx 时,输出 0,当 CNT>=CCRx 时输出 1。那么就可以得到如上的 PWM示意图:当 CNT 值小于 CCRx 的时候,IO 输出低电平(0),当 CNT 值大于等于 CCRx 的时候,IO 输出高电平(1),当 CNT 达到 ARR 值的时候,重新归零,然后重新向上计数,依次循环。改变 CCRx 的值,就可以改变 PWM 输出的占空比,改变 ARR 的值,就可以改变 PWM 输出的频率,这就是 PWM 输出的原理。

    最后提供一个PWM输出讲得很详细的博客,有原理也有程序解释,希望对楼主有帮助。

    http://www.cnblogs.com/zhoubatuo/p/6135103.html

    • 发布于2017-09-12
    • 举报
    • 评论 2
    • 1
    • 0
2356174012 回复了 黄莨元 :楼上老哥解答的甚是详细。赞一个。 回复
黄莨元 回复了 黄莨元 :详细就采纳呗,哈哈,看着我给的图就比较好理解了,不会很难 回复

  • 可參考這張圖

    698.PNG

    說明和圖表很清楚

    以上

    • 发布于2017-09-12
    • 举报
    • 评论 0
    • 1
    • 0

  • 其实这两种方式你懂一个就行了,其余一个是反向的,即就是极性和占空比是相反的。

    PWM1模式下:如果是向上计数模式,使能定时器后CNT(计数器的值)会从0开始往上数,如果CNT小于设置的值(CCR1)那么此时CC1通道输出的是高电平,大于设置的值时是低电平,CNT继续往上数,到重装寄存器的值时会更新为0,继续一个周期,如此往复。。。PWM2模式则相反。总结来说,实际上就是改变占空比实现一些功能,如呼吸灯,控制电机(一把好好手啊)​!

    • 发布于2017-09-12
    • 举报
    • 评论 0
    • 0
    • 0

  • 我用pwm时,从来没纠结过它所谓的有效电平,我反正就控制我的高低电平比就行。知道不同模式什么时候是输出1,什么时候输出0就行,楼上哥们解答得很清楚了。


    • 发布于2017-09-13
    • 举报
    • 评论 0
    • 0
    • 0

  • 这里规定了占空比的计算以及输出极性。总之就是拿CNT寄存器和CCR寄存器相比较。

    CNT计数到达CCR之前为高,处于CCR和ARR之间为低;或者反之。这个地方就是介绍了PWM的不同模式。

    • 发布于2017-09-12
    • 举报
    • 评论 0
    • -1
    • 0

相关问题

问题达人换一批

如何理解STM32的PWM输出模式