From 37849c60633719ee5e30354fb908ef7db8f83e8c Mon Sep 17 00:00:00 2001 From: penglei <1624952103@qq.com> Date: Wed, 10 Sep 2025 16:04:03 +0800 Subject: [PATCH] =?utf8?q?=E9=80=82=E9=85=8D=E9=9B=B7=E9=B8=9FJD9985=20LCD?= =?utf8?q?=EF=BC=8C=E6=B7=BB=E5=8A=A0=E8=83=8C=E5=85=89=E6=8E=A7=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../brandy/brandy_standard/thread_pri_init.c | 4 + .../src/actions/display_action.c | 13 ++ .../wearable/ohos_startup/ohosfwk_startup.c | 4 +- .../config/target_config/brandy/config.py | 2 +- .../brandy_evb/board_config/board_leiniao.h | 3 +- .../product/product_evb4_standard.h | 3 + .../drivers/drivers/driver/lcd/lcd_config.c | 170 +++++++++++++++++- .../drivers/drivers/driver/lcd/soc_lcd_api.h | 2 +- code/sdk/zhihui/utils/custom_utils.c | 48 ++++- code/sdk/zhihui/utils/custom_utils.h | 3 + 10 files changed, 239 insertions(+), 13 deletions(-) diff --git a/code/sdk/application/brandy/brandy_standard/thread_pri_init.c b/code/sdk/application/brandy/brandy_standard/thread_pri_init.c index 826fe0a1f..8eb0f4ca8 100644 --- a/code/sdk/application/brandy/brandy_standard/thread_pri_init.c +++ b/code/sdk/application/brandy/brandy_standard/thread_pri_init.c @@ -31,6 +31,7 @@ #include "nandflash_config.h" #include "yaffs_nand_drv.h" #endif +#ifndef BOARD_LEINIAO #if defined(TPTYPE_TMA525B) #include "tma525b_drv1.h" #elif defined(TPTYPE_ZTW523) @@ -42,6 +43,7 @@ #else #include "ztw523_touch1.h" #endif +#endif #include "thread_pri_init.h" #if DSP_EXIST == YES #include "soc_uapi_audio_sys.h" @@ -155,6 +157,7 @@ store_class g_store_init_select = STORE_CLASS_NAND; #if defined(ENABLE_UIKIT) || defined(ENABLE_LVGL) static void sample_gfx_init(void) { +#ifndef BOARD_LEINIAO #if defined(TPTYPE_TMA525B) tma525b_host_init_sample(); #elif defined(TPTYPE_ZTW523) @@ -165,6 +168,7 @@ static void sample_gfx_init(void) cst86xx_host_init_sample(); #else ztw523_host_init_sample(); +#endif #endif uapi_lcd_init(); uapi_vau_module_init(); diff --git a/code/sdk/application/wearable/ln/service/power_manager/src/actions/display_action.c b/code/sdk/application/wearable/ln/service/power_manager/src/actions/display_action.c index 3e2c29d46..399376dea 100644 --- a/code/sdk/application/wearable/ln/service/power_manager/src/actions/display_action.c +++ b/code/sdk/application/wearable/ln/service/power_manager/src/actions/display_action.c @@ -29,6 +29,9 @@ #include "touch_screen_def.h" #include "time.h" #include "tcxo.h" +#if defined(CUSTOM_UTILS) && defined(BOARD_LEINIAO) +#include "custom_utils.h" +#endif /* GBL_CTL_M中SOFT_RST_4寄存器 */ #define DISPLAY_LOGIC_CRG_RESET 0x570000c0 /** @@ -150,6 +153,9 @@ static uint32_t action_display_lcd_on() POWER_DISPLAY_PRINT_ERR(0, "drv vau resume error ret=%x\r\n", ret); return ERRCODE_FAIL; } +#if defined(CUSTOM_UTILS) && defined(BOARD_LEINIAO) + uapi_lcd_backlight_on(1); +#endif ret = uapi_lcd_init(); if (ret != 0 && ret != EXT_ERR_MIPI_ALREADY_INIT) { POWER_DISPLAY_PRINT_ERR(0, "LCD init error ret=%x\r\n", ret); @@ -160,7 +166,9 @@ static uint32_t action_display_lcd_on() NotifyScreenOn(); // Instruct the uikit to start the display operation. #endif if ((g_pms_lcd_on_first_flag == false) && (g_pms_dpu_ready == false)) { +#ifndef BOARD_LEINIAO touch_screen_resume(); // open touch +#endif } #ifdef CONFIG_CLDO1PD_SUPPORT pmu_control_cldo1_sleep_bypass(TURN_ON); @@ -193,7 +201,12 @@ static uint32_t action_display_lcd_off() #endif osDelay(100); // Wait 100ms for the uikit to complete display. +#ifndef BOARD_LEINIAO touch_screen_suspend(); // close touch +#endif +#if defined(CUSTOM_UTILS) && defined(BOARD_LEINIAO) + uapi_lcd_backlight_off(); +#endif ext_errno ret = drv_vau_suspend(NULL); if (ret != 0) { POWER_DISPLAY_PRINT_ERR(0, "drv vau suspend error ret=%x\r\n", ret); diff --git a/code/sdk/application/wearable/ohos_startup/ohosfwk_startup.c b/code/sdk/application/wearable/ohos_startup/ohosfwk_startup.c index d1f181e8d..b313663ff 100644 --- a/code/sdk/application/wearable/ohos_startup/ohosfwk_startup.c +++ b/code/sdk/application/wearable/ohos_startup/ohosfwk_startup.c @@ -85,13 +85,13 @@ void ohos_startup() return; } - +#ifndef BOARD_LEINIAO #ifdef ENABLE_UIKIT boot_animation_init(); #endif wait_animation_stop(); boot_animation_init_deinit(); - +#endif #if defined(CONFIG_OTA_UPDATE_SUPPORT) && defined(ENABLE_UIKIT) //如果在升级状态,则不进入系统 if (upg_check_upgrade_need_upgrade()) return ; diff --git a/code/sdk/build/config/target_config/brandy/config.py b/code/sdk/build/config/target_config/brandy/config.py index 9dae88d97..5a0ca3d77 100644 --- a/code/sdk/build/config/target_config/brandy/config.py +++ b/code/sdk/build/config/target_config/brandy/config.py @@ -1097,7 +1097,7 @@ target = { 'VIB_USE_PWM', 'CONFIG_PWM_SUPPORT', # 'ACC_LIS2DOC', - # 'ENABLE_CUSTOM_I2C', + 'ENABLE_CUSTOM_I2C', #'ENABLE_VIBRATOR', # 'ENCODER_SUPPORT', # 'SUPPORT_SPO2_NOTIFICATION', diff --git a/code/sdk/drivers/boards/brandy_evb/board_config/board_leiniao.h b/code/sdk/drivers/boards/brandy_evb/board_config/board_leiniao.h index 3b16cc259..c8c6297f3 100644 --- a/code/sdk/drivers/boards/brandy_evb/board_config/board_leiniao.h +++ b/code/sdk/drivers/boards/brandy_evb/board_config/board_leiniao.h @@ -287,7 +287,8 @@ const hal_gpio_config_t g_gpio_function_config[PIN_MAX_NUMBER] = { { S_AGPIO_R9, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_LOW, 0, NULL }, { S_AGPIO_L20, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_HIGH, 0, NULL }, #endif - + //开机开启背光 + { S_AGPIO_L16, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_HIGH, 0, NULL }, //默认关闭马达 { S_AGPIO_R2, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_LOW, 0, NULL }, //默认开启 EXT LDO V3.0 V1.8 diff --git a/code/sdk/drivers/boards/brandy_evb/product/product_evb4_standard.h b/code/sdk/drivers/boards/brandy_evb/product/product_evb4_standard.h index 6919b26bd..590897f39 100644 --- a/code/sdk/drivers/boards/brandy_evb/product/product_evb4_standard.h +++ b/code/sdk/drivers/boards/brandy_evb/product/product_evb4_standard.h @@ -124,6 +124,9 @@ #if defined(BOARD_U8) #define RESOLUTION_WIDTH 410//466//454 #define RESOLUTION_HEIGHT 502//466//454 +#elif defined (BOARD_LEINIAO) +#define RESOLUTION_WIDTH 360 +#define RESOLUTION_HEIGHT 360 #else #define RESOLUTION_WIDTH 466//454 #define RESOLUTION_HEIGHT 466//454 diff --git a/code/sdk/drivers/drivers/driver/lcd/lcd_config.c b/code/sdk/drivers/drivers/driver/lcd/lcd_config.c index 1d7dad9ff..589e47b26 100644 --- a/code/sdk/drivers/drivers/driver/lcd/lcd_config.c +++ b/code/sdk/drivers/drivers/driver/lcd/lcd_config.c @@ -11,6 +11,7 @@ #define LCD_EDO_502X410_SCREEN_ID 0xFFFF //CH13613 #define LCD_EDO_466X466_SCREEN_ID 0x1133 +#define LCD_JD_360X360_SCREEN_ID 0x5598 #define LCD_EDO_454X454_SCREEN_ID 0xf00 #define LCD_BOE_454X454_SCREEN_ID 0x500 #define LCD_SH_240X296_SCREEN_ID 0x101 @@ -89,6 +90,25 @@ const combo_dev_cfg_t g_panel_466x466_60_config = { .pixel_clk = 20000, // 20000KHz }; +const combo_dev_cfg_t g_panel_360x360_60_config = { + .devno = 0, + .lane_id = {0, -1}, + .out_mode = OUT_MODE_DSI_CMD, + .out_format = OUT_FORMAT_RGB_24BIT, + .sync_info = { + .hsa_pixels = 8, // hsa 10 pixels + .hbp_pixels = 40, // hbp 10 pixels + .hact_pixels = 360, // hact 454 pixels + .hfp_pixels = 40, // hfp 10 pixels + .vsa_lines = 2, // vsa 4 lines + .vbp_lines = 14, // vbp 12 lines + .vact_lines = 360, // vact 454 lines + .vfp_lines = 16, // vfp 10 lines + }, + .phy_data_rate = 480, // 480Mbps + .pixel_clk = 20000, // 20000KHz +}; + const combo_dev_cfg_t g_panel_454x454_60_config = { .devno = 0, .lane_id = {0, -1}, @@ -135,12 +155,6 @@ const combo_dev_cfg_t g_panel_194x368_qspi_config = { }, }; -/* display off sequence for common lcd */ -const lcd_cmd_sequ g_common_cmd_display_off[] = { - {1, 2, {0xfe, 0x00}, 0}, /* select default cmd page */ - {1, 1, {0x28}, 0}, /* display off */ - {1, 1, {0x10}, 120}, /* sleep in */ -}; const lcd_cmd_sequ g_common_466x466_cmd_display_off[] = { #if defined(BOARD_W9) || defined(BOARD_N9) @@ -155,6 +169,68 @@ const lcd_cmd_sequ g_common_466x466_cmd_display_off[] = { {1, 2, {0x4f, 0x01}, 0}, /* ��deepstandby ״̬ */ #endif }; + +#ifdef BOARD_LEINIAO + +/* display off sequence for common lcd */ +const lcd_cmd_sequ g_common_cmd_display_off[] = { + {1, 2, {0xde, 0x00}, 0}, /* select default cmd page */ + {1, 1, {0x28}, 0}, /* display off */ + {1, 1, {0x10}, 120}, /* sleep in */ +}; + +/* sleep in sequence for common lcd */ +const lcd_cmd_sequ g_common_cmd_sleep_in[] = { + {1, 2, {0xde, 0x00}, 0}, /* select default cmd page */ + {1, 1, {0x28}, 0}, /* display off */ + {1, 1, {0x10}, 120}, /* sleep in */ +}; + +/* sleep in sequence for common lcd */ +const lcd_cmd_sequ g_common_cmd_sleep_out[] = { + {1, 2, {0xde, 0x00}, 0}, /* select default cmd page */ + {1, 1, {0x11}, 120}, /* sleep out */ + {1, 1, {0x29}, 0}, /* display on */ +}; + +/* idle in sequence for EDO and BOE 454*454 lcd */ +lcd_cmd_sequ g_common_cmd_idle_in[] = { + {1, 2, {0xde, 0x00}, 0}, + {1, 1, {0x39}, 0}, +}; + +/* idle out sequence for EDO and BOE 454*454 lcd */ +const lcd_cmd_sequ g_common_cmd_idle_out[] = { + {1, 2, {0xde, 0x00}, 0}, + {1, 1, {0x38}, 0}, +}; + +/* te on sequence for EDO and BOE 454*454 lcd */ +const lcd_cmd_sequ g_common_cmd_te_on[] = { + {1, 2, {0xde, 0x00}, 0}, + {1, 1, {0x35}, 0}, +}; + +/* te off sequence for EDO and BOE 454*454 lcd */ +const lcd_cmd_sequ g_common_cmd_te_off[] = { + {1, 2, {0xde, 0x00}, 0}, + {1, 1, {0x34}, 0}, +}; + +/* set brightness sequence for EDO and BOE 454*454 lcd */ +lcd_cmd_sequ g_common_cmd_brightness[] = { + {1, 2, {0xde, 0x00}, 0}, + {1, 2, {0x51, 0xff}, 0}, +}; +#else + +/* display off sequence for common lcd */ +const lcd_cmd_sequ g_common_cmd_display_off[] = { + {1, 2, {0xfe, 0x00}, 0}, /* select default cmd page */ + {1, 1, {0x28}, 0}, /* display off */ + {1, 1, {0x10}, 120}, /* sleep in */ +}; + /* sleep in sequence for common lcd */ const lcd_cmd_sequ g_common_cmd_sleep_in[] = { {1, 2, {0xfe, 0x00}, 0}, /* select default cmd page */ @@ -198,7 +274,7 @@ lcd_cmd_sequ g_common_cmd_brightness[] = { {1, 2, {0xfe, 0x00}, 0}, {1, 2, {0x51, 0xff}, 0}, }; - +#endif /* init sequence for ST7367 360*480 lcd */ const lcd_cmd_sequ g_st7367_360x480_screen_init_on[] = { {1, 2, {0xF0, 0xC3}, 0}, @@ -340,6 +416,62 @@ const lcd_cmd_sequ g_boe_194x368_screen_init_on[] = { {0, 1, {0x39}, 0}, }; + +const lcd_cmd_sequ g_jd_360x360_screen_init_on[] = { + {1, 2, {0xDE, 0x00}, 0}, + {1, 3, {0xDF, 0x98, 0x55}, 0}, + {1, 3, {0xCE, 0x0D, 0x00}, 0}, + // {1, 2, {0xC2, 0x38}, 0}, + {1, 2, {0xB2, 0x30}, 0}, + {1, 5, {0xB7, 0x01, 0x35, 0x01, 0x5D}, 0}, + {1, 7, {0xBB, 0x1B, 0x64, 0xE3, 0x34, 0x3E, 0xF3}, 0}, + {1, 5, {0xBC, 0x00, 0x18, 0xF3, 0xC0}, 0}, + {1, 3, {0xC0, 0x22, 0xC1}, 0}, + {1, 12, {0xC3, 0x00, 0x02, 0x2A, 0x0B, 0x08, 0x47, 0x08, 0x04, 0x62, 0x30, 0x30}, 0}, + {1, 12, {0xC4, 0x40, 0x00, 0xAD, 0x68, 0x43, 0x07, 0x04, 0x16, 0x43, 0x07, 0x04}, 0}, + {1, 33, {0xC8, 0x3F, 0x2E, 0x24, 0x1F, 0x20, 0x21, 0x1D, 0x1D, 0x1D, 0x1C, 0x19, 0x0E, 0x0B, 0x07, 0x03, 0x02, 0x3F, 0x2E, 0x24, 0x1F, 0x20, 0x21, 0x1D, 0x1D, 0x1D, 0x1C, 0x19, 0x0E, 0x0B, 0x07, 0x03, 0x02}, 0}, + {1, 3, {0xD3, 0x28, 0x13}, 0}, + {1, 3, {0xD7, 0x18, 0x31}, 0}, + {1, 7, {0xD9, 0x00, 0x00, 0xFF, 0x00, 0xF0, 0x00}, 0}, + {1, 2, {0xDE, 0x01}, 0}, + {1, 9, {0xB7, 0x13, 0xE7, 0x64, 0x39, 0x06, 0x36, 0x19, 0x1C}, 0}, + {1, 2, {0xBE, 0x00}, 0}, + {1, 5, {0xC1, 0x04, 0x4A, 0x90, 0x08}, 0}, + {1, 5, {0xC2, 0x00, 0x16, 0xDA, 0xE7}, 0}, + {1, 3, {0xC4, 0x72, 0x12}, 0}, + {1, 7, {0xC7, 0x00, 0x00, 0x09, 0x3D, 0x09, 0x3D}, 0}, + {1, 7, {0xC8, 0x00, 0x00, 0x0B, 0x3D, 0x16, 0x39}, 0}, + {1, 6, {0xC9, 0x00, 0x0A, 0x08, 0x06, 0x04}, 0}, + {1, 6, {0xCA, 0x1E, 0x1F, 0x10, 0x17, 0x18}, 0}, + {1, 6, {0xCB, 0x01, 0x0B, 0x09, 0x07, 0x05}, 0}, + {1, 6, {0xCC, 0x1E, 0x1F, 0x11, 0x17, 0x18}, 0}, + {1, 6, {0xCD, 0x31, 0x25, 0x27, 0x29, 0x2B}, 0}, + {1, 6, {0xCE, 0x3F, 0x3E, 0x21, 0x37, 0x38}, 0}, + {1, 6, {0xCF, 0x30, 0x24, 0x26, 0x28, 0x2A}, 0}, + {1, 6, {0xD0, 0x3F, 0x3E, 0x20, 0x37, 0x38}, 0}, + {1, 6, {0xD1, 0x06, 0x30, 0xA5, 0xDB, 0x30}, 0}, + {1, 7, {0xD3, 0x3B, 0x08, 0x00, 0x00, 0x00, 0x00}, 0}, + {1, 7, {0xD4, 0x67, 0x00, 0x00, 0x01, 0x00, 0x01}, 0}, + {1, 8, {0xD5, 0x10, 0x10, 0x07, 0x07, 0x0F, 0x94, 0x26}, 0}, + {1, 4, {0xD6, 0x00, 0x00, 0x40}, 0}, + {1, 4, {0xD7, 0x01, 0x84, 0x20}, 0}, + {1, 2, {0xDE, 0x02}, 0}, + {1, 2, {0xB6, 0x1C}, 0}, + {1, 2, {0xDE, 0x00}, 0}, + {1, 2, {0x4D, 0x00}, 0}, + {1, 2, {0x4E, 0x00}, 0}, + {1, 2, {0x4F, 0x00}, 0}, + {1, 2, {0x4C, 0x01}, 10}, + {1, 2, {0x4C, 0x00}, 0}, + {1, 5, {0x2A, 0x00, 0x00, 0x01, 0x68}, 0}, + {1, 5, {0x2B, 0x00, 0x00, 0x01, 0x68}, 0}, + {1, 2, {0x35, 0x00}, 0}, + {1, 2, {0x36, 0x00}, 0}, + /* {1, 2, {0x3A, 0x55}, 0}, */ + {1, 1, {0x11}, 120}, + {1, 1, {0x29}, 10}, +}; + const lcd_cmds_sequ g_display_off_cmds = { .cmd = g_common_cmd_display_off, .cmd_cnt = array_size(g_common_cmd_display_off), @@ -389,6 +521,11 @@ const lcd_cmds_sequ g_edo_466x466_screen_init_on_cmds = { .cmd_cnt = array_size(g_edo_466x466_screen_init_on), }; +const lcd_cmds_sequ g_jd_360x360_screen_init_on_cmds = { + .cmd = g_jd_360x360_screen_init_on, + .cmd_cnt = array_size(g_jd_360x360_screen_init_on), +}; + const lcd_cmds_sequ g_edo_454x454_screen_init_on_cmds = { .cmd = g_edo_454x454_screen_init_on, .cmd_cnt = array_size(g_edo_454x454_screen_init_on), @@ -478,6 +615,25 @@ const lcd_drv_cfg g_lcd_driver_ops[] = { .lcd_id_info.reg_addr = 0x04, .lcd_id_info.read_len = 3, }, + { + .bus_type = BUS_DISPLAY_MIPI, + .bus_cfg = &g_panel_360x360_60_config, + .x_start = 0, + .y_start = 0, + .fps = 60, + .lcd_id = LCD_JD_360X360_SCREEN_ID, + .display_on_cmds = &g_jd_360x360_screen_init_on_cmds, + .display_off_cmds = &g_display_off_cmds, + .enter_idle_cmds = &g_idle_in_cmds, + .exit_idle_cmds = &g_idle_out_cmds, + .te_on_cmds = &g_te_on_cmds, + .te_off_cmds = &g_te_off_cmds, + .set_brightnes_cmds = &g_brightness_cmds, + .sleep_in_cmds = &g_sleep_in_cmds, + .sleep_out_cmds = &g_sleep_out_cmds, + .lcd_id_info.reg_addr = 0x04, + .lcd_id_info.read_len = 3, + }, { .bus_type = BUS_DISPLAY_MIPI, .bus_cfg = &g_panel_454x454_60_config, diff --git a/code/sdk/drivers/drivers/driver/lcd/soc_lcd_api.h b/code/sdk/drivers/drivers/driver/lcd/soc_lcd_api.h index d080983fa..b3211223f 100644 --- a/code/sdk/drivers/drivers/driver/lcd/soc_lcd_api.h +++ b/code/sdk/drivers/drivers/driver/lcd/soc_lcd_api.h @@ -18,7 +18,7 @@ extern "C" { #endif -#define MAX_DATA_LENGTH 15 +#define MAX_DATA_LENGTH 50 typedef enum { LCD_DISPLAY_OFF, /* LCD关闭显示 */ diff --git a/code/sdk/zhihui/utils/custom_utils.c b/code/sdk/zhihui/utils/custom_utils.c index 988c9ee17..a728ee0cf 100644 --- a/code/sdk/zhihui/utils/custom_utils.c +++ b/code/sdk/zhihui/utils/custom_utils.c @@ -4330,4 +4330,50 @@ void uapi_get_lcd_id(uint32_t *id) *id = (uint32_t)lcd_cfg->lcd_id; } } -} \ No newline at end of file +} + +#define LCD_BACKLIGHT_PWM_PIN S_AGPIO_L16 /* 背光PWM引脚 */ + +void uapi_lcd_backlight_off(void) +{ + 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); + + PRINT("uapi_lcd_backlight_off\r\n"); +} + +void uapi_lcd_backlight_on(uint8_t brightness) +{ + uint8_t fall_edge_cnt = 0; + if (brightness <= 11) fall_edge_cnt = 7; + else if (brightness <= 24) fall_edge_cnt = 6; + else if (brightness <= 37) fall_edge_cnt = 5; + else if (brightness <= 49) fall_edge_cnt = 4; + else if (brightness <= 61) fall_edge_cnt = 3; + else if (brightness <= 74) fall_edge_cnt = 2; + else if (brightness <= 87) fall_edge_cnt = 1; + else fall_edge_cnt = 0; + + uapi_pin_set_mode(S_AGPIO_L16, HAL_PIO_FUNC_GPIO); + uapi_gpio_set_dir(S_AGPIO_L16, GPIO_DIRECTION_OUTPUT); + uapi_gpio_set_val(S_AGPIO_L16, GPIO_LEVEL_LOW); + + uapi_tcxo_delay_us(180); + + for (uint8_t i = 0; i < fall_edge_cnt; i++) + { + uapi_gpio_set_val(S_AGPIO_L16, GPIO_LEVEL_HIGH); + uapi_tcxo_delay_us(1); + + uapi_gpio_set_val(S_AGPIO_L16, GPIO_LEVEL_LOW); + uapi_tcxo_delay_us(1); + } + + uapi_gpio_set_val(S_AGPIO_L16, GPIO_LEVEL_HIGH); + + uapi_tcxo_delay_us(30); + + printf("Brightness: %u%% → Fall Edge: %u → LED Current: %.1fmA\n", + brightness, fall_edge_cnt, 20.0 - (2.5 * fall_edge_cnt)); +} diff --git a/code/sdk/zhihui/utils/custom_utils.h b/code/sdk/zhihui/utils/custom_utils.h index c5c1f896d..2a6ae7ddc 100644 --- a/code/sdk/zhihui/utils/custom_utils.h +++ b/code/sdk/zhihui/utils/custom_utils.h @@ -440,6 +440,9 @@ void uapi_cat1_add_cat1_vote(void); void uapi_get_lcd_id(uint32_t *id); +void uapi_lcd_backlight_on(uint8_t brightness); +void uapi_lcd_backlight_off(void); + #include "custom_utilscpp.h" -- 2.17.1