优化雷鸟背光控制
authorpenglei <1624952103@qq.com>
Fri, 21 Nov 2025 06:34:42 +0000 (14:34 +0800)
committerpenglei <1624952103@qq.com>
Fri, 21 Nov 2025 06:34:42 +0000 (14:34 +0800)
code/sdk/application/wearable/ln/service/power_manager/src/actions/display_action.c
code/sdk/application/wearable/ln/service/power_manager/src/power_display_service.c
code/sdk/zhihui/utils/custom_utils.c

index db48adb..bb829f8 100644 (file)
@@ -153,14 +153,16 @@ static uint32_t action_display_lcd_on()
             POWER_DISPLAY_PRINT_ERR(0, "drv vau resume error ret=%x\r\n", ret);\r
             return ERRCODE_FAIL;\r
         }\r
-#if defined(CUSTOM_UTILS) && defined(BOARD_LEINIAO)\r
-        uapi_lcd_backlight_on();\r
-#endif\r
+\r
         ret = uapi_lcd_init();\r
         if (ret != 0 && ret != EXT_ERR_MIPI_ALREADY_INIT) {\r
             POWER_DISPLAY_PRINT_ERR(0, "LCD init error ret=%x\r\n", ret);\r
             return ERRCODE_FAIL;\r
         }\r
+\r
+#if defined(CUSTOM_UTILS) && defined(BOARD_LEINIAO)\r
+        uapi_lcd_backlight_on();\r
+#endif\r
     }\r
 #if defined(ENABLE_UIKIT) || defined(ENABLE_LVGL)\r
     NotifyScreenOn(); // Instruct the uikit to start the display operation.\r
index 19b9d2b..b6b5037 100644 (file)
@@ -94,9 +94,6 @@ static errcode_t power_display_msg_write(uint32_t msg_id, uint8_t *msg, uint16_t
 \r
 static errcode_t power_display_turn_on_screen(void)\r
 {\r
-#if defined(CUSTOM_UTILS) && defined(BOARD_LEINIAO)\r
-    uapi_lcd_backlight_on();\r
-#endif\r
 #ifndef SUPPORT_OHOSFWK\r
     message_type_t mt = TURN_ON_SCREEN_CMD;\r
     uint32_t event_info = 0;\r
@@ -107,14 +104,15 @@ static errcode_t power_display_turn_on_screen(void)
 #else\r
     PostGraphicEvent(power_display_turnon_handle_ext, NULL);\r
 #endif\r
+\r
+#if defined(CUSTOM_UTILS) && defined(BOARD_LEINIAO)\r
+    uapi_lcd_backlight_on();\r
+#endif\r
     return ERRCODE_SUCC;\r
 }\r
 \r
 static errcode_t power_display_turn_off_screen(void)\r
 {\r
-#if defined(CUSTOM_UTILS) && defined(BOARD_LEINIAO)\r
-    uapi_lcd_backlight_off();\r
-#endif\r
 #ifndef SUPPORT_OHOSFWK\r
     message_type_t mt = TURN_OFF_SCREEN_CMD;\r
     uint32_t event_info = 0;\r
@@ -125,6 +123,11 @@ static errcode_t power_display_turn_off_screen(void)
 #else\r
     PostGraphicEvent(power_display_turnoff_handle_ext, NULL);\r
 #endif\r
+\r
+#if defined(CUSTOM_UTILS) && defined(BOARD_LEINIAO)\r
+    uapi_lcd_backlight_off();\r
+#endif\r
+\r
     return ERRCODE_SUCC;\r
 }\r
 \r
index 1435c69..ada64f2 100644 (file)
@@ -4633,10 +4633,17 @@ void uapi_get_lcd_id(uint32_t *id)
     }
 }
 
+static uint8_t backlight_status = 0;
 #define LCD_BACKLIGHT_PWM_PIN       S_AGPIO_L16    /* 背光PWM引脚 */
 
 void uapi_lcd_backlight_off(void)
 {
+
+    if(backlight_status == 0)
+        return;
+
+    backlight_status = 0;
+
     uapi_pin_set_mode(LCD_BACKLIGHT_PWM_PIN, HAL_PIO_FUNC_GPIO);
     uapi_gpio_set_dir(LCD_BACKLIGHT_PWM_PIN, GPIO_DIRECTION_OUTPUT);
     uapi_gpio_set_val(LCD_BACKLIGHT_PWM_PIN, GPIO_LEVEL_LOW);
@@ -4646,7 +4653,14 @@ void uapi_lcd_backlight_off(void)
 
 void uapi_lcd_backlight_on(void)
 {
-    uint8_t brightness = 100;
+
+    if(backlight_status == 1)
+        return;
+
+    backlight_status = 1;
+
+
+    uint8_t brightness = 5;
 
     brightness = cm_getScreenBrightness();
     printf("brightness:%d\n",brightness);