英創(chuàng)所有嵌入式主板都提供了屏幕背光控制方案,本文將詳細介紹如何在ESM335X WEC7上進行屏幕背光控制。
自動背光設(shè)置
設(shè)置自動背光時間,可以讓系統(tǒng)在停止操作一定時間后自動關(guān)閉屏幕背光,當恢復(fù)操作后自動打開屏幕背光,設(shè)置方法如下:
打開控制面板->電源,選擇“方案”頁,選擇“電源使用方案”為“交流電源”,選擇“將狀態(tài)切換為用戶空閑”選項的時間,這個時間即自動關(guān)閉背光的時間。
手動控制背光開關(guān)
有時客戶希望在自己應(yīng)用程序中能夠自由控制背光的開關(guān),那么可以參考我們例程進行如下調(diào)用。
#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;
//操作背光前需要先打開背光驅(qū)動
hBLK = CreateFile(L"BKL1:", // 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)
//獲得屏幕背光狀態(tài)
BOOL success;
success = DeviceIoControl(hBLK,
IOCTL_POWER_GET,
NULL,
0,
&power,
sizeof(CEDEVICE_POWER_STATE),
NULL,
NULL);
//關(guān)閉屏幕背光,恢復(fù)操作(鼠標移動,按鍵等)屏幕背光不會打開
power = D4;
success = DeviceIoControl(hBLK,
IOCTL_POWER_SET,
NULL,
0,
&power,
sizeof(CEDEVICE_POWER_STATE),
&dwReturn,
NULL);
//關(guān)閉屏幕背光,恢復(fù)操作(鼠標移動,按鍵等)屏幕背光自動打開
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);
//關(guān)閉背光驅(qū)動
if(hBLK != NULL)
{
CloseHandle(hBLK);
}
操作時需要先打開背光驅(qū)動,操作完成后需關(guān)閉背光驅(qū)動,D0為開,D4為關(guān)。
控制屏幕背光亮度
ESM335X WEC7除了控制屏幕開關(guān),還可以調(diào)節(jié)屏幕亮度,操作代碼如下:
#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;
//操作背光前需要先打開背光驅(qū)動
hBLK = CreateFile(L"BKL1:", // 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);
//先調(diào)用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);
}
操作時需要先打開背光驅(qū)動,需要先調(diào)用IOCTL_BKL_GET_SETTINGS獲得背光參數(shù),然后調(diào)用IOCTL_BKL_SET_SETTINGS設(shè)置亮度范圍。亮度范圍為0到255,0表示最暗,255表示最亮。
其它屏幕背光參數(shù)控制說明
使用遠程注冊表工具打開ESM335X WEC7注冊表,找到背光驅(qū)動信息處。
這里的PwmFreq值為屏幕背光頻率值,默認為400Hz,用戶可以根據(jù)自身選購屏參數(shù)性能自由調(diào)節(jié)該頻率值。
本文提及的例程均可聯(lián)系英創(chuàng)工程師獲得。
-
嵌入式主板
+關(guān)注
關(guān)注
7文章
6100瀏覽量
36263
發(fā)布評論請先 登錄
科普|信創(chuàng)是什么?一文讀懂“信息技術(shù)應(yīng)用創(chuàng)新”戰(zhàn)略

2025第二屆教育信息技術(shù)應(yīng)用創(chuàng)新大賽正式開賽
龍芯中科榮獲2024年度信息技術(shù)應(yīng)用創(chuàng)新工作委員會卓越貢獻成員單位
芯盛智能榮獲2024年信息技術(shù)應(yīng)用創(chuàng)新工作委員會卓越貢獻成員單位
飛騰助力首屆教育信息技術(shù)應(yīng)用創(chuàng)新大賽圓滿落幕
有方科技參編的信息技術(shù)團體標準發(fā)布
龍芯中科助力2024首屆教育信息技術(shù)應(yīng)用創(chuàng)新大賽成功舉辦
AM335x和AMIC110 Sitara?處理器技術(shù)參考手冊

中科創(chuàng)達榮獲2024年軟件和信息技術(shù)服務(wù)優(yōu)秀企業(yè)
信創(chuàng)國產(chǎn)化背景下的工控主板發(fā)展現(xiàn)狀
梯度科技入選2023年信息技術(shù)應(yīng)用創(chuàng)新解決方案名單
MSP430 FRAM技術(shù)–使用方法和最佳實踐

評論