关于STM32 PWM输出控制LED亮度问题

2019-08-14 07:25发布

     各路大神,最近刚接触这个实验,碰到的疑惑颇多,希望能帮忙解决解决,谢谢啦。

     首先根据正点的程序,设置PWM输出为模式2,高电平有效,成功控制LED由暗到亮,再由亮到暗。然后,我仅仅改变PWM的模式为模式1,极性不变,发现LED常亮,对此甚是疑惑。

     根据我的理解(不知道对不对),首先模式1在CCRx>CNT时为有效电平,而有效电平为高。在主程序最开始ledpwmval=0,意味着在这个周期内,CNT的值都是大于CCRx的值,通道为
无效电平,OCxREF恒为0,此时led最亮。但是随着ledpwmval 的值增加,在以后的周期内,低电平的占比开始缩小,led的亮度应该降低啊,不应该常亮啊。

     此后,我发现PWM输出模式2,低极性,led也是常亮(同PWM输出模式1,高极性配置的现象)。PWM输出模式1,低级性,led由最暗到最亮(同PWM输出模式2,高级性配置的现象)。由此
引发出另一个问题,我怎么实现led亮度由最亮到灭再到最亮呢???

   

     

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
9条回答
17602515236
2019-08-14 11:32
本帖最后由 17602515236 于 2017-8-19 14:21 编辑
Ray0809 发表于 2017-8-19 13:34
我们就看图中PWM2配Low(Channel3)的输出波形,此时输出波形的占空比为20%,我们按这个配置输出到PB5(LED ...

你看一下程序,原子哥的程序把范围设置到了0-300(80kHz最大是到900),所以,这个占空比,最大也只有33%,30%的时候低电平占67%,那肯定是亮的,然后占空比0%的时候,全部都是低电平,那自然也是亮的,所以LED全程都是亮的你可以把300调成900,这样子就会有变化了,只不过亮的时间会长一些

一周热门 更多>