英创信息技术ESM335x WEC7背光使用方法

英创所有嵌入式主板都提供了屏幕背光控制方案,本文将详细介绍如何在esm335x wec7上进行屏幕背光控制。
自动背光设置
设置自动背光时间,可以让系统在停止操作一定时间后自动关闭屏幕背光,当恢复操作后自动打开屏幕背光,设置方法如下:
打开控制面板->电源,选择“方案”页,选择“电源使用方案”为“交流电源”,选择“将状态切换为用户空闲”选项的时间,这个时间即自动关闭背光的时间。
手动控制背光开关
有时客户希望在自己应用程序中能够自由控制背光的开关,那么可以参考我们例程进行如下调用。
#include
#include winioctl.h
#include pm.h
#define file_device_power file_device_acpi
#define ioctl_power_set ctl_code(file_device_power, 0x402, method_buffered, file_any_access)
handle hblk;
cedevice_power_state power;
dword dwreturn;
//操作背光前需要先打开背光驱动
hblk = createfile(lbkl1:, // name of device
generic_read|generic_write, // desired access
file_share_read|file_share_write, // sharing mode
null, // security attributes (ignored)
open_existing, // creation disposition
file_flag_random_access, // flags/attributes
null); // template file (ignored)
//获得屏幕背光状态
bool success;
success = deviceiocontrol(hblk,
ioctl_power_get,
null,
0,
&power,
sizeof(cedevice_power_state),
null,
null);
//关闭屏幕背光,恢复操作(鼠标移动,按键等)屏幕背光不会打开
power = d4;
success = deviceiocontrol(hblk,
ioctl_power_set,
null,
0,
&power,
sizeof(cedevice_power_state),
&dwreturn,
null);
//关闭屏幕背光,恢复操作(鼠标移动,按键等)屏幕背光自动打开
power = d1;
success = deviceiocontrol(hblk,
ioctl_power_set,
null,
0,
&power,
sizeof(cedevice_power_state),
&dwreturn,
null);
//打开屏幕背光
power = d0;
success = deviceiocontrol(hblk,
ioctl_power_set,
null,
0,
&power,
sizeof(cedevice_power_state),
&dwreturn,
null);
//关闭背光驱动
if(hblk != null)
{
closehandle(hblk);
}
操作时需要先打开背光驱动,操作完成后需关闭背光驱动,d0为开,d4为关。
控制屏幕背光亮度
esm335x wec7除了控制屏幕开关,还可以调节屏幕亮度,操作代码如下:
#defineioctl_bkl_get_settings ctl_code(file_device_backlight, 0x102, method_buffered, file_any_access)
#defineioctl_bkl_set_settings ctl_code(file_device_backlight, 0x103, method_buffered, file_any_access)
bkl_settings_info bklinfo;
//操作背光前需要先打开背光驱动
hblk = createfile(lbkl1:, // name of device
generic_read|generic_write, // desired access
file_share_read|file_share_write, // sharing mode
null, // security attributes (ignored)
open_existing, // creation disposition
file_flag_random_access, // flags/attributes
null);
//先调用ioctl_bkl_get_settings获得当前bkl_settings_info
success = deviceiocontrol(hblk,
ioctl_bkl_get_settings,
null,
0,
&bklinfo,
sizeof(bkl_settings_info),
&dwreturn,
null);
//通过修改bkl_settings_info的dwbrightness_expower,让屏幕从亮变暗
for(inti=0xff; i>=0; )
{
bklinfo.dwbrightness_expower = i;
success = deviceiocontrol(hblk,
ioctl_bkl_set_settings,
&bklinfo,
sizeof(bkl_settings_info),
null,
0,
&dwreturn,
null);
sleep(100);
i -= 5;
}
//通过修改bkl_settings_info的dwbrightness_expower,让屏幕从暗变亮
for(inti=0; i<=0xff; )
{
bklinfo.dwbrightness_expower = i;
success = deviceiocontrol(hblk,
ioctl_bkl_set_settings,
&bklinfo,
sizeof(bkl_settings_info),
null,
0,
&dwreturn,
null);
sleep(100);
i+= 5;
}
if(hblk != null)
{
closehandle(hblk);
}
操作时需要先打开背光驱动,需要先调用ioctl_bkl_get_settings获得背光参数,然后调用ioctl_bkl_set_settings设置亮度范围。亮度范围为0到255,0表示最暗,255表示最亮。
其它屏幕背光参数控制说明
使用远程注册表工具打开esm335x wec7注册表,找到背光驱动信息处。
这里的pwmfreq值为屏幕背光频率值,默认为400hz,用户可以根据自身选购屏参数性能自由调节该频率值。
本文提及的例程均可联系英创工程师获得。

工业互联网界的标杆GE和西门子对发展路径做出了不同的抉择
iPhone11 Pro系列手机的充电器原理图解析
ARM推出处理传感器数据流的芯片助力自动驾驶汽车
跨时钟域处理方式
OPPO Find X2系列号称“拥有不可思议的流畅度” 屏幕达到行业公认的准专业显示器级别
英创信息技术ESM335x WEC7背光使用方法
比亚迪助力柬埔寨新能源基础设施完善
16位低噪声A/D 转换器LTC2217
万兆产业全面成熟,千亿联接全面加速,共同将5.5G带入现实
微波炉磁控管工作原理
如何检查EMI电源滤波器的好坏
机器视觉之导线颜色识别
关于MOS管的基础知识
即将面世的Red Magic 5G游戏手机终于在官方海报中揭晓
集成、PLC、机器人和运动控制
安捷伦科技推出示波器MSO/DSO,具备硬件加速“搜索和导航
详解单层FPC/双面FPC/多层FPC区别
【NuMaker-M2354试用】_adc测试分享
华为注册鸿蒙商标 揭开华为自研操作系统的神秘面纱
魅族将携手三大运营商,2020年推出5G手机