打开自动调节背光功能后,手动调节背光到最小,屏幕完全变黑

当打开自动调节背光功能的时候,手动调节设置中背光滚动条将背光设置到最小,屏幕会完全变黑,这种现象可能与lcm的最小亮度有关,可以采用如下方式解决: 

1、设置背光,确定可以使lcm点亮的最小背光值
echo xx >/sys/class/leds/lcd-backlight/brightness    xx为backlight level

2、修改alps/frameworks/base/core/res/res/values/config.xml中如下参数的值为步骤1中所获取的最小背光值
<integer name="config_screenBrightnessDark">1</integer>

打开背光节点后调节背光亮度的方法因不同的系统和硬件环境而有所不同。 #### LK阶段通过PWM调节 在LK阶段,如果是通过PWM控制背光,可在`pwm_backlight_ctrl`函数中修改PWM的占空比来调节亮度。例如,在之前的代码基础上,通过修改`PWM_DUTY_US`的值来改变占空比,从而调节亮度。以下是示例代码: ```c #define PWM_PERIOD_US 1000 // 假设周期为1000us #define MIN_DUTY_US 100 // 最小占空比对应的时间 #define MAX_DUTY_US 900 // 最大占空比对应的时间 // 调节亮度函数 void adjust_backlight_brightness(int brightness_percentage) { int duty_us; // 根据亮度百分比计算占空比时间 duty_us = MIN_DUTY_US + (MAX_DUTY_US - MIN_DUTY_US) * brightness_percentage / 100; int rc = pm_pwm_config(duty_us, PWM_PERIOD_US); if (rc < 0) { // 处理配置失败的情况 } else { pm_pwm_enable(true); } } ``` #### A10 LCD通过ioctl调节 对于A10 LCD,可通过`ioctl`函数向设备发送不同的参数来调节亮度。不过原代码中未体现亮度调节部分,可参考设备文档找到对应的`ioctl`命令和参数。假设存在一个`SET_BRIGHTNESS`命令,示例代码如下: ```c #include <stdio.h> #include <sys/ioctl.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #define displayno 0 #define DISP_DEV "/dev/disp" #define SET_BRIGHTNESS 0x143 // 假设的亮度调节命令 int main(int argc, char const *argv[]) { unsigned long args[4] = {displayno, 0, 0, 0}; int disp = open(DISP_DEV, O_RDWR, 0); if (disp < 0) { perror("open"); return -1; } // 设置亮度为50% args[1] = 50; if (ioctl(disp, SET_BRIGHTNESS, args) < 0) { perror("ioctl: SET_BRIGHTNESS"); } close(disp); return 0; } ``` #### 通用系统通过sysfs调节 在一些基于Linux的系统中,可通过`sysfs`接口调节背光亮度。背光设备通常会在`/sys/class/backlight`目录下有对应的文件夹,文件夹中包含`brightness`和`max_brightness`文件。可通过向`brightness`文件写入一个0到`max_brightness`之间的值来调节亮度。示例命令如下: ```bash # 获取最大亮度 max_brightness=$(cat /sys/class/backlight/your_backlight_device/max_brightness) # 设置亮度为最大亮度的50% echo $(($max_brightness / 2)) > /sys/class/backlight/your_backlight_device/brightness ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值