这里使用的是正点原子阿波罗 F429 和 4.3寸RGB屏幕为例,在RGB屏实验上加上调节亮度功能
其实控制屏幕的亮度可以理解成是控制输出pwm占空比,pwm越大屏幕越亮
可以看到板子上是把 PB5 接到 RGB屏幕的背光控制引脚
通过查找数据手册可以看到PB5接到的是TIM3的通道二,所以我们在控制背光的时候可以通过控制TIM3_CH2的 PWM 占空比来调节屏幕亮度
可以看到用的是PWM模式1,将这些设置好后,为了方便通过更改CCR来改变PWM的占空比,初始化的时候可以把 arr 设置成100,这样修改 ccr 的值时,其实也能看成是百分比了,比如ccr设置成10,那么百分比就是10 / 100 = 10%,说明亮度是10%,其实怎样都可以的,这是自己定义的而已。
这就是我初始化的参数,arr设置为100,这里我还加入了外部中断,使得能通过按键来修改ccr的值,进而改变占空比从而控制屏幕亮度。
另外几个按键我没修改,可以根据实际修改,我这里使用 key0来把屏幕调暗,key1调亮,和前面设置的 pwm 模式和极性有关,另外,为了方便测试,我还在main函数加入打印来实时查看ccr的值,这是初始化函数:gtim_timx_pwm_chy_init(100-1,9600-1); 一开始我把psc的值赋给了ccr ,而arr只有100,这就导致了比较错误,而且每次就只加减10,对于我这个初始化函数,就是每次都对9600加减10,每次数据差距不大,导致屏幕亮度改变几乎看不到,后面调试才知道,我把psc的值赋给了ccr,如下图,后面重新将arr赋值给ccr ,就可以正常控制屏幕亮度了。当ccr = arr = 我设置的100时,屏幕亮度最高,pwm引脚输出恒为高电平,当ccr = 0 时,屏幕亮度最低,pwm引脚输出恒为低电平。
上图是主函数加入打印的函数,做好这些,就能通过key0和key1来控制屏幕的亮度了。