中科蓝讯 BT8958B2 SDK 开发——PWM 控制屏幕背光

哈喽,大家好。

今天这篇博文就跟大家分享一下基于中科蓝讯 BT8958B2 ,通过 PWM 去控制屏幕背光的示例。本文是仿照 SDK 内容另写的程序,大家可以根据使用 IO 口的不同对代码进行修改。

一、原理图连接

1. 背光电路连接如下图所示,其中 LCD_BL_PWM 连接 BT8958B2 的 PB0 口,VDDIO_3V3 连接 BT8958B2 的 VDDIO 引脚。

2. LEDA 连接屏幕中的发光二极管的阳极,LEDK 连接阴极。


二、软件配置

1. 背光控制引脚 PB0 IO 口配置


2. 定时器初始化配置

查阅数据手册后,PB0 所用为 PWM0,为定时器3的第2组。下面进行定时器的配置。

2.1 配置 PWM 映射,配置 FUNCMCON2 寄存器的 8-11位。

此处需将 FUNCMCON2 的第8-11 位配置为 0x02,配置为Timer3-G2。

2.2 配置 Timer3 的时钟源,配置 TMR3CON 寄存器的 2-3 位。

默认配置为系统时钟。

 

2.3 Timer3 计数器先置为0。


2.4 使能 Timer3 PWM0,需配置 TMR3CON 寄存器的第 9 位,置为 1。


2.5 使能 Timer3 计数器,需配置 TMR3CON 寄存器的第 0 位,置为 1。

 

2.6 配置 TMR3PR 寄存器,配置定时器周期。

例如 TMR3PR  = 24000000L/500-1; 
Timer period = TMRPR +1 = 48000,系统时钟频率为24M,24M/(48000) = 500HZ, 即周期为0.002S。

具体代码配置如下:

其中 lcd_bl_init(); 为背光控制引脚 PB0 IO 口配置,已在第 1 点中进行了介绍。lcd_bl_level_set(BL_INT_VALUE) 为PWM 占空比的设置,下面会进行介绍。

2.7 配置 TMR3DUTY0 进行 PWM0 占空比的配置。

可根据设置一个周期中高电平或者低电平的时间,配置占空比。

此处通过设置一个周期低电平的时间去配置占空比。2.6 中已将周期Timer period配置为 48000 ,该处屏幕亮度调节将 4800 分为 100 份,进行亮度调节,调节等级由 0 到 100 逐渐变亮。定时器初始化完成后,调用该函数即可控制屏幕亮度。

三、总结

以上就是基于中科蓝讯 BT8958B2 SDK 开发,通过PWM 控制屏幕背光的全部内容,感谢阅读。


四、参考资料

1. 中科蓝讯蓝皮书

2. BT895X DataSheet.pdf

★博文内容均由个人提供,与平台无关,如有违法或侵权,请与网站管理员联系。

★文明上网,请理性发言。内容一周内被举报5次,发文人进小黑屋喔~

评论