任务:通过按键调节开发板上PWM三个通道输出不同占空比,实现对三色灯的调色,其中通过0.96OLED显示每个通道的PWM占空比。 RGB三色灯: 实现步骤: 首先通过易码魔盒创建一个新模板,选择PWM0-设置频率为1000Hz(方便调节),初始占空比可以不进行设置,使能任意三个独立模式通道,失能PWM中断。 这里由于用到了OLED以及三个按键,所以再对这些外设进行初始化IO口设置。 按键使用到GPIO1--PIN0、1、2,配置为上拉输入,OLED使用到了GPIO2--PIN1、3,配置为强推挽输出。 占空比调节: 方法一:在rd_pwm.c中可以找到配置占空比的函数: 调节占空比就需要用到这个函数。 方法二:通过寄存器直接更改占空比的值: 由于在rd_pwm.c中定义了PWM占空比调节寄存器: 直接使用需要了解这些分别对应那些通道,通过数据手册,我们可以知道PWM0的通道0通道1通道2的占空比调节寄存器对应的地址为: 所以,PWM00、PWM01,PWM02对应的占空比调节寄存器为PWMREG[6],PWMREG[7],PWMREG[8]。 主函数编写: 知道了这些,就可以对PWM占空比进行配置了,这里我使用三个按键对每个通道的PWM占空比进行调节。 这里我设置没次按键按下,占空比增加3199,按下10次之后,PWM占空比100%。当然,通过调整占空比函数的第二个参数,可以对增量的方向进行设置。 (注意一点:使用P11端口作为按键使用时,由原理图可知,P11为标签为CLK与D1灯(也就是板子上的RUN灯)相连,按下按键时,D1灯也会亮。) 实验现象: 通过三个按键调节PWM占空比,使RGB三色灯显示不同颜色。 同时通过OLED显示当前通道的占空比: