From c41f4bfcf1db62c82298265649a899529f1a0f30 Mon Sep 17 00:00:00 2001 From: penglei <1624952103@qq.com> Date: Mon, 26 May 2025 15:40:39 +0800 Subject: [PATCH] =?utf8?q?=E9=99=8D=E4=BD=8Elcd=EF=BC=8Ctp=E5=8A=9F?= =?utf8?q?=E8=80=97=EF=BC=9B=E7=BC=96=E7=A0=81=E5=99=A8=E6=95=88=E6=9E=9C?= =?utf8?q?=E8=B0=83=E4=BC=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../drivers/drivers/driver/lcd/lcd_config.c | 27 +++++++----- .../drivers/drivers/driver/lcd/lcd_private.c | 4 +- .../driver/touch/cst86xx_touch/cst86xx_ctrl.c | 4 +- .../touch/cst86xx_touch/cst86xx_touch1.c | 4 +- .../touch/cst86xx_touch/cst86xx_touch1.h | 2 +- .../drivers/driver/touch/touch_screen_def.h | 1 + code/sdk/zhihui/drivers/bp/bn02/bn02.c | 11 +++-- .../drivers/bp/service/bp_ble_service.c | 44 ++++++++++++++----- .../zhihui/drivers/bp/service/bp_service.c | 16 +++---- .../drivers/charge/service/charge_at_cmd.c | 4 +- .../rotary_encoder/hx3508/hx3508_at_cmd.c | 2 - .../rotary_encoder/mixo/mixo_ots_driver.c | 4 +- .../rotary_encoder/mixo/mixo_service.c | 2 +- 13 files changed, 78 insertions(+), 47 deletions(-) diff --git a/code/sdk/drivers/drivers/driver/lcd/lcd_config.c b/code/sdk/drivers/drivers/driver/lcd/lcd_config.c index 769dcc24e..97cf3f07d 100644 --- a/code/sdk/drivers/drivers/driver/lcd/lcd_config.c +++ b/code/sdk/drivers/drivers/driver/lcd/lcd_config.c @@ -17,17 +17,17 @@ #define LCD_BOE_194X368_SCREEN_ID 0x4a00 /* -pixel_clk ÐèÒª´óÓÚ sync_info Öеģ¨hsa+hbp+hact+hfp£©* -£¨vsa+vbp+vact+vfp£©* 60 / 1000 £¨Ö¡ÂÊÅäÖà 60fps£© +pixel_clk ��Ҫ���� sync_info �еģ�hsa+hbp+hact+hfp��* +��vsa+vbp+vact+vfp��* 60 / 1000 ��֡������ 60fps�� -. phy_data_rate£½pixel_clk * 24 / 1000£¬ Èç¹û¼ÆËã³öÀ´µÄÖµ´óÓÚ 500£¬ÐèÒªµ÷ -Õû½µµÍÖ¡ÂÊ£¬¼õС pixel_clk¡£ +. phy_data_rate��pixel_clk * 24 / 1000�� ������������ֵ���� 500����Ҫ�� +������֡�ʣ���С pixel_clk�� -µ±ÐÞ¸ÄÁË pixel_clk ʱ£¬ÐèҪͬ²½ÐÞ¸Ä -¡°middleware\services\gpu\drv\dpu\hal\dpu_hal_crg.c¡±Öк¯Êý -dpu_crg_set_vedio_mclk_div_ctl µÄ dpu_mclk_div Öµ£¬¸ÃÖµµÄºóÁ½Î»ÐèÒªÓë -pixel_clk µÄ 16 ½øÖÆÖµ±£³ÖÒ»Ö£¬ÈçÏ pixel_clk£½20000kHZ£¬»»ËãΪ MHZ Ϊ 20£¬ -¶ÔÓ¦µÄ 16 ½øÖÆÎª 0x14¡£ +���޸��� pixel_clk ʱ����Ҫͬ���޸� +��middleware\services\gpu\drv\dpu\hal\dpu_hal_crg.c����� +dpu_crg_set_vedio_mclk_div_ctl �� dpu_mclk_div ֵ����ֵ�ĺ���λ��Ҫ�� +pixel_clk �� 16 ����ֵ����һ�£����� pixel_clk��20000kHZ������Ϊ MHZ Ϊ 20�� +��Ӧ�� 16 ����Ϊ 0x14�� */ const combo_dev_cfg_t g_panel_502x410_50_config = { .devno = 0, @@ -122,10 +122,17 @@ const lcd_cmd_sequ g_common_cmd_display_off[] = { /* display off sequence for common lcd */ const lcd_cmd_sequ g_common_466x466_cmd_display_off[] = { +#ifdef BOARD_W9 + {1, 2, {0xfe, 0x00}, 0}, /* select default cmd page */ + {1, 1, {0x28}, 10}, /* display off */ + {1, 1, {0x10}, 120}, /* sleep in */ + {1, 2, {0x4f, 0x01}, 100}, /* sleep in */ +#else {1, 2, {0xfe, 0x00}, 0}, /* select default cmd page */ {1, 1, {0x28}, 0}, /* display off */ {1, 1, {0x10}, 120}, /* sleep in */ - {1, 2, {0x4f, 0x01}, 0}, /* ½ødeepstandby ״̬ */ + {1, 2, {0x4f, 0x01}, 0}, /* ��deepstandby ״̬ */ +#endif }; /* sleep in sequence for common lcd */ diff --git a/code/sdk/drivers/drivers/driver/lcd/lcd_private.c b/code/sdk/drivers/drivers/driver/lcd/lcd_private.c index 064395295..21c039ffc 100644 --- a/code/sdk/drivers/drivers/driver/lcd/lcd_private.c +++ b/code/sdk/drivers/drivers/driver/lcd/lcd_private.c @@ -37,13 +37,15 @@ static void lcd_drv_power_off(void) uapi_gpio_set_dir(VCI_LCD_GPIO, GPIO_DIRECTION_OUTPUT); uapi_gpio_set_val(VCI_LCD_GPIO, GPIO_LEVEL_LOW); #endif +#ifndef BOARD_W9 uapi_tcxo_delay_ms(10); /* delay 10 ms */ +#endif int resetvalue = uapi_gpio_get_output_val(RESET_LCD_GPIO); int lcd_envalue = uapi_gpio_get_output_val(VCI_LCD_GPIO); printf("Output RESET_LCD_GPIO %d , VCI_LCD_GPIO %d\r\n",resetvalue,lcd_envalue); #else uapi_gpio_set_val(RESET_LCD_GPIO, GPIO_LEVEL_LOW); - uapi_gpio_set_dir(RESET_LCD_GPIO, GPIO_DIRECTION_INPUT); //ÉèÖóÉInput£¬ÊÇΪÁ˽â¾ö©µç £¿£¿ + uapi_gpio_set_dir(RESET_LCD_GPIO, GPIO_DIRECTION_INPUT); //���ó�Input����Ϊ�˽��©�� ���� uapi_pin_set_pull(RESET_LCD_GPIO, PIN_PULL_DOWN); #ifndef QSPI_DISPLAY uapi_gpio_set_val(VCI_LCD_GPIO, GPIO_LEVEL_LOW); diff --git a/code/sdk/drivers/drivers/driver/touch/cst86xx_touch/cst86xx_ctrl.c b/code/sdk/drivers/drivers/driver/touch/cst86xx_touch/cst86xx_ctrl.c index 4eea84762..f840c0ac3 100644 --- a/code/sdk/drivers/drivers/driver/touch/cst86xx_touch/cst86xx_ctrl.c +++ b/code/sdk/drivers/drivers/driver/touch/cst86xx_touch/cst86xx_ctrl.c @@ -178,7 +178,9 @@ ext_errno cst86xx_tp_i2c_reg_write(uint16_t reg_addr, uint16_t reg_cfg) } g_tp_send_buf[CST86XX_I2C_SEND_INDEX0] = reg_addr & 0xff; - + + g_tp_send_buf[1] = reg_cfg & 0xff; + data.send_buf = g_tp_send_buf; data.send_len = CST86XX_REG_WRITE_LEN; data.receive_buf = NULL; diff --git a/code/sdk/drivers/drivers/driver/touch/cst86xx_touch/cst86xx_touch1.c b/code/sdk/drivers/drivers/driver/touch/cst86xx_touch/cst86xx_touch1.c index 9a0f08480..c3944210f 100644 --- a/code/sdk/drivers/drivers/driver/touch/cst86xx_touch/cst86xx_touch1.c +++ b/code/sdk/drivers/drivers/driver/touch/cst86xx_touch/cst86xx_touch1.c @@ -171,7 +171,9 @@ static ext_errno cst86xx_suspend(void) tp_print("TOUCH:alread suspend"); return EXT_ERR_SUCCESS; } - + + cst86xx_reset();//唤醒IC + /* Send Sleep Cmd */ reg_write = CST86XX_SLEEP_CMD; for (retry_times = 0; retry_times < CST86XX_INIT_RETRY_TIMERS; retry_times++) { diff --git a/code/sdk/drivers/drivers/driver/touch/cst86xx_touch/cst86xx_touch1.h b/code/sdk/drivers/drivers/driver/touch/cst86xx_touch/cst86xx_touch1.h index e2f5c200b..5250e76d0 100644 --- a/code/sdk/drivers/drivers/driver/touch/cst86xx_touch/cst86xx_touch1.h +++ b/code/sdk/drivers/drivers/driver/touch/cst86xx_touch/cst86xx_touch1.h @@ -135,7 +135,7 @@ extern "C" { #define CST86XX_REPORT_REG 0x0186 /* 设置中断上报频率 */ #define CST86XX_PIXEL_THRESHOLD_REG 0x00C3 /* Register Map */ -#define CST86XX_SLEEP_CMD 0xA5 +#define CST86XX_SLEEP_CMD 0xE5 #define CST86XX_FIRMWARE_VERSION 0xA9 #define CST86XX_FACTORY_ID 0xAA #define CST86XX_HW_ID 0xA7 diff --git a/code/sdk/drivers/drivers/driver/touch/touch_screen_def.h b/code/sdk/drivers/drivers/driver/touch/touch_screen_def.h index 67c8b096e..077fec88a 100644 --- a/code/sdk/drivers/drivers/driver/touch/touch_screen_def.h +++ b/code/sdk/drivers/drivers/driver/touch/touch_screen_def.h @@ -36,6 +36,7 @@ extern "C" { (sz) = NULL; \ } while (0) +// #define TP_DEBUG #ifdef TP_DEBUG #define tp_print(fmt, ...) \ do { \ diff --git a/code/sdk/zhihui/drivers/bp/bn02/bn02.c b/code/sdk/zhihui/drivers/bp/bn02/bn02.c index 6159755b6..7d2de8c69 100644 --- a/code/sdk/zhihui/drivers/bp/bn02/bn02.c +++ b/code/sdk/zhihui/drivers/bp/bn02/bn02.c @@ -2,7 +2,7 @@ * @Author: penglei 1624952103@qq.com * @Date: 2025-01-16 12:35:15 * @LastEditors: penglei 1624952103@qq.com - * @LastEditTime: 2025-02-14 11:37:22 + * @LastEditTime: 2025-05-24 14:43:40 * @FilePath: /sdk615/code/sdk/zhihui/drivers/bp/bn02/bn02.c * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE */ @@ -132,11 +132,10 @@ void bn02_int_handle(void) bn02_replymsg(bn02_buf,sizeof(bn02_buf),1); } - - for(i = 0;i<48;i++) - { - printf("[%d]= 0x%x\n",i,bn02_buf[i]); - } + // for(i = 0;i<48;i++) + // { + // printf("[%d]= 0x%x\n",i,bn02_buf[i]); + // } } void bn02_start(void) diff --git a/code/sdk/zhihui/drivers/bp/service/bp_ble_service.c b/code/sdk/zhihui/drivers/bp/service/bp_ble_service.c index 9a5c697f6..995dd8b5b 100644 --- a/code/sdk/zhihui/drivers/bp/service/bp_ble_service.c +++ b/code/sdk/zhihui/drivers/bp/service/bp_ble_service.c @@ -2,7 +2,7 @@ * @Author: penglei 1624952103@qq.com * @Date: 2025-02-14 10:30:21 * @LastEditors: penglei 1624952103@qq.com - * @LastEditTime: 2025-02-14 14:43:09 + * @LastEditTime: 2025-05-26 15:39:37 * @FilePath: /sdk615/code/sdk/zhihui/drivers/bp/service/bp_ble_service.c * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE */ @@ -11,6 +11,7 @@ #include "custom_utils.h" #include "bp_service.h" #include "bp_ble_service.h" +#include "factorytestService.h" #define START_CODE 0x55 #define PPG_DATA_SIZE 3 @@ -41,23 +42,32 @@ uint8_t bn02_get_ble_status(void) uint8_t bn02_calculate_checksum(ble_bp_data_t frame) { uint8_t checksum = 0; + checksum += frame.start_code; + checksum += frame.main_func_code; checksum += frame.sub_func_code; - checksum += (frame.data_length >> 8) & 0xFF; // 数据长度高字节 - checksum += frame.data_length & 0xFF; // 数据长度低字节 - checksum += (frame.flags >> 8) & 0xFF; // 标识高字节 - checksum += frame.flags & 0xFF; // 标识低字节 - - for (uint16_t i = 0; i < frame.data_length - 2; i++) { // 数据长度包含标识 + + checksum += (frame.data_length >> 8) & 0xFF; // 高字节 + checksum += frame.data_length & 0xFF; // 低字节 + + checksum += (frame.flags >> 8) & 0xFF; // 高字节 + checksum += frame.flags & 0xFF; // 低字节 + + + for (uint16_t i = 0; i < (frame.data_length - 2); i++) { checksum += frame.data[i]; } + + checksum &= 0xFF; + + // printf("checksum : 0x%x\n", checksum); return checksum; } errcode_t bn02_parse_frame(uint8_t *buf, uint16_t event_size) { - if(buf != NULL && event_size>=(1+2+2+2+1+1)) + if(buf != NULL && event_size >= (1+2+2+2+1+1)) { memset_s(ble_bp_data,0,sizeof(ble_bp_data),0); @@ -68,9 +78,14 @@ errcode_t bn02_parse_frame(uint8_t *buf, uint16_t event_size) ble_bp_data.flags = (buf[5] << 8) + buf[6]; ble_bp_data.data = &buf[7]; + // printf("start_code : 0x%x, main_func_code : 0x%x, sub_func_code : 0x%x, data_length : 0x%x, flags : 0x%x, data : 0x%x\n", + // ble_bp_data.start_code,ble_bp_data.main_func_code,ble_bp_data.sub_func_code,ble_bp_data.data_length,ble_bp_data.flags,*ble_bp_data.data); + if(buf[8] != bn02_calculate_checksum(ble_bp_data)) return ERRCODE_FAIL; + ble_bp_data.sub_func_code += 0x80; + if(!(*ble_bp_data.data)) { do_bp_service_check_msg(BP_SERVICE_CMD_START_CHECK); @@ -96,11 +111,10 @@ errcode_t bn02_parse_frame(uint8_t *buf, uint16_t event_size) errcode_t bn02_replymsg(uint8_t *input_data,uint16_t input_len,uint8_t flags) { errcode_t ret; - ble_bp_data.sub_func_code += 0x80; ble_bp_data.data = input_data; ble_bp_data.data_length = input_len + 2; - if(ble_bp_data.flags < (1 << 14)) + if((ble_bp_data.flags & 0x3FFF) < (1 << 14)) ble_bp_data.flags++; if(flags) @@ -110,7 +124,15 @@ errcode_t bn02_replymsg(uint8_t *input_data,uint16_t input_len,uint8_t flags) ble_bp_data.checksum = bn02_calculate_checksum(ble_bp_data); - ret = ble_factorytest_server_send_input_report((uint8_t *)&ble_bp_data,sizeof(ble_bp_data)); + // printf("start_code : 0x%x, main_func_code : 0x%x, sub_func_code : 0x%x, data_length : 0x%x, flags : 0x%x check_sum : 0x%x\n", + // ble_bp_data.start_code,ble_bp_data.main_func_code,ble_bp_data.sub_func_code,ble_bp_data.data_length,ble_bp_data.flags,ble_bp_data.checksum); + + // for(int i = 0;i<48;i++) + // { + // printf("reply:[%d]= 0x%x\n",i,ble_bp_data.data[i]); + // } + ret = ble_factorytest_server_send_input_report((uint8_t *)&ble_bp_data,sizeof(ble_bp_data)); + // printf("ret : 0x%x \n",ret); return ret; } diff --git a/code/sdk/zhihui/drivers/bp/service/bp_service.c b/code/sdk/zhihui/drivers/bp/service/bp_service.c index d319d6a92..ac0805803 100644 --- a/code/sdk/zhihui/drivers/bp/service/bp_service.c +++ b/code/sdk/zhihui/drivers/bp/service/bp_service.c @@ -63,18 +63,18 @@ static void bp_service_check_task(void const *arg) continue; } if (mail.comm.app == BP_SERVICE_CMD_TIMER_CHECK) { - PRINT("bn02_int_handle \n"); + // PRINT("bn02_int_handle \n"); bn02_int_handle(); }else if (mail.comm.app == BP_SERVICE_CMD_START_CHECK){ - PRINT("bn02_start \n"); + // PRINT("bn02_start \n"); bn02_start(); - if(g_bp_service_timer) - osTimerStart(g_bp_service_timer,150); + // if(g_bp_service_timer) + // osTimerStart(g_bp_service_timer,150); }else if (mail.comm.app == BP_SERVICE_CMD_STOP_CHECK){ - PRINT("bn02_stop \n"); + // PRINT("bn02_stop \n"); bn02_stop(); - if(g_bp_service_timer) - osTimerStop(g_bp_service_timer); + // if(g_bp_service_timer) + // osTimerStop(g_bp_service_timer); } } } @@ -116,7 +116,7 @@ errcode_t uapi_bp_service_init(void) void bp_int_callback(pin_t pin, uintptr_t param) { - PRINT("bp_int_callback %d 0x%X\n",pin,param); + // PRINT("bp_int_callback %d 0x%X\n",pin,param); uapi_gpio_clear_interrupt(pin); do_bp_service_check_msg(BP_SERVICE_CMD_TIMER_CHECK); } diff --git a/code/sdk/zhihui/drivers/charge/service/charge_at_cmd.c b/code/sdk/zhihui/drivers/charge/service/charge_at_cmd.c index 552f30a23..8bfc11453 100644 --- a/code/sdk/zhihui/drivers/charge/service/charge_at_cmd.c +++ b/code/sdk/zhihui/drivers/charge/service/charge_at_cmd.c @@ -2,7 +2,7 @@ * @Author: penglei 1624952103@qq.com * @Date: 2024-12-23 15:11:01 * @LastEditors: penglei 1624952103@qq.com - * @LastEditTime: 2024-12-30 15:24:42 + * @LastEditTime: 2025-05-23 15:23:32 * @FilePath: /sdk615/code/sdk/zhihui/drivers/charge/HP4570/service/charge_at_cmd.c * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE */ @@ -83,8 +83,6 @@ static uint32_t hp4570_test(uint8_t *para, uint32_t paraLen, char *strCommonCmd) } // ots_stop(); g_charge_test_started = 0 ; - }else{ - custom_exit_lpm(); } return ERRCODE_SUCC; } diff --git a/code/sdk/zhihui/drivers/rotary_encoder/hx3508/hx3508_at_cmd.c b/code/sdk/zhihui/drivers/rotary_encoder/hx3508/hx3508_at_cmd.c index 269ddfaaa..b1d7507bd 100644 --- a/code/sdk/zhihui/drivers/rotary_encoder/hx3508/hx3508_at_cmd.c +++ b/code/sdk/zhihui/drivers/rotary_encoder/hx3508/hx3508_at_cmd.c @@ -89,8 +89,6 @@ static uint32_t hx3508_test(uint8_t *para, uint32_t paraLen, char *strCommonCmd) } ots_stop(); g_hx3508_test_started = 0 ; - }else{ - custom_exit_lpm(); } return ERRCODE_SUCC; } diff --git a/code/sdk/zhihui/drivers/rotary_encoder/mixo/mixo_ots_driver.c b/code/sdk/zhihui/drivers/rotary_encoder/mixo/mixo_ots_driver.c index d5021322b..16fc440ea 100644 --- a/code/sdk/zhihui/drivers/rotary_encoder/mixo/mixo_ots_driver.c +++ b/code/sdk/zhihui/drivers/rotary_encoder/mixo/mixo_ots_driver.c @@ -32,9 +32,9 @@ static void put_crown_result(int16_t x) { return; } - if(abs(x)>=4 ) + if(abs(x)>=8 ) { - ots_result += x/4; //大于4的值除以4, 代表角度, 单位0.5° + ots_result += x/8; //大于4的值除以4, 代表角度, 单位0.5° } else { diff --git a/code/sdk/zhihui/drivers/rotary_encoder/mixo/mixo_service.c b/code/sdk/zhihui/drivers/rotary_encoder/mixo/mixo_service.c index c918c7390..6a74d8425 100644 --- a/code/sdk/zhihui/drivers/rotary_encoder/mixo/mixo_service.c +++ b/code/sdk/zhihui/drivers/rotary_encoder/mixo/mixo_service.c @@ -19,7 +19,7 @@ */ #define MIXO_SERVICE_CMD_TIMER_CHECK 0x11 -#define MIXO_SERVICE_TIMER_CHECK_MS 40 +#define MIXO_SERVICE_TIMER_CHECK_MS 30 static bool g_mixo_service_initialled = false; -- 2.17.1