查看: 3526|回复: 0

[分享] 【i.MX6UL】 LCD背光调节程序

[复制链接]
  • TA的每日心情
    开心
    2025-7-11 08:53
  • 签到天数: 301 天

    连续签到: 2 天

    [LV.8]以坛为家I

    3941

    主题

    7562

    帖子

    0

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    40236
    最后登录
    2025-9-10
    发表于 2021-7-23 14:02:06 | 显示全部楼层 |阅读模式
    目标:了解i.MX6UL如何调节显示屏的背光亮度。
    功能:点击触摸屏对应的亮度按钮,实现不同的亮度设置,同时获取和显示当前的亮度值。

    在进行应用软件开发前,先看一下开发板的LCD硬件接口原理图,如下所示:
    11.png


    从硬件原理图可以看出开发板的LCD支持背光调节,通过核心板的GPIO1_IO08引脚,连接到LCD的Backlight接口。应用程序可以通过系统提供的接口,对LCD的背光亮度进行调节。TQ-i.MX6UL支持8级背光亮度调节。

    对于TQ-i.MX6UL平台,内核已经封装好背光系统的驱动,并对外提供了系统接口,关于背光系统提供给应用程序的接口,在开发板的以下目录:


    /sys/devices/platform/backlight/backlight/backlight
    12.png
    这里,我们关注三个节点:actual_brightness, brightness, max_brightness


    actual_brightness:这个节点只读,可以通过读取这个节点,获取LCD实际的亮度值。


    brightness:这个节点可读可写,向这个节点写入不同值(0-7),可调节LCD亮度。


    max_brightness:这个节点只读,通过读取此节点,获取可以设置的最大亮度级别。

    对于合法的亮度设置值,可以查看驱动的设备树文件:


    arch/arm/boot/dts/tq-imx6ul.dts
    13.png
    由上图可知,背光驱动支持8级调节,因此,三个节点actual_brightness, brightness, max_brightness 对应的可调值范围为 0 - 7。

    以下是应用程序的开发过程


    1、 先用Qt Creator构建一个工程,命名为:003_backlight_pwm,关于如何构建工程,请参考“第一个嵌入式QT应用程序”的具体内容。

    2、 双击打开“widget.ui”文件,构建界面,构建后的界面如下图所示:
    14.png
    3、 对于设置背光值和获取背光值,可以封装一个类Backlight_Ctrl,这个类包含了设置背光和获取背光这两个方法,类的具体内容如下图所示。
    15.png
    4、 set_brightness() 和 get_brightness() 这两个方法的具体实现如下图所示:
    16.png
    5、 在构建Widget对象的时候,我们可以同步构建一个backlight_ctrl对象,这样,就可以通过这个对象,调用里面的方法进行背光设置和获取,如下图所示。
    17.png
    6、需要注意的是,由于我们设置了背光亮度为0后,显示屏背光关闭,导致看不到显示的按钮。因此,我们通过一个定时器,3秒后恢复到指定的亮度。定时器设置为单次触发的方式,3秒后触发。如下图所示。
    18.png
    7、 至此,所有代码编写完成,下载到开发板,运行应用程序。

    qiandao qiandao
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-9-10 09:59 , Processed in 0.077684 second(s), 20 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表