#define LCD_BOE_194X368_SCREEN_ID 0x4a00\r
\r
/*\r
-pixel_clk ÐèÒª´óÓÚ sync_info Öеģ¨hsa+hbp+hact+hfp£©* \r
-£¨vsa+vbp+vact+vfp£©* 60 / 1000 £¨Ö¡ÂÊÅäÖà 60fps£©\r
+pixel_clk ��Ҫ���� sync_info �еģ�hsa+hbp+hact+hfp��* \r
+��vsa+vbp+vact+vfp��* 60 / 1000 ��֡������ 60fps��\r
\r
-. phy_data_rate£½pixel_clk * 24 / 1000£¬ Èç¹û¼ÆËã³öÀ´µÄÖµ´óÓÚ 500£¬ÐèÒªµ÷\r
-Õû½µµÍÖ¡ÂÊ£¬¼õС pixel_clk¡£\r
+. phy_data_rate��pixel_clk * 24 / 1000�� ������������ֵ���� 500����Ҫ��\r
+������֡�ʣ���С pixel_clk��\r
\r
-µ±ÐÞ¸ÄÁË pixel_clk ʱ£¬ÐèҪͬ²½ÐÞ¸Ä\r
-¡°middleware\services\gpu\drv\dpu\hal\dpu_hal_crg.c¡±Öк¯Êý\r
-dpu_crg_set_vedio_mclk_div_ctl µÄ dpu_mclk_div Öµ£¬¸ÃÖµµÄºóÁ½Î»ÐèÒªÓë\r
-pixel_clk µÄ 16 ½øÖÆÖµ±£³ÖÒ»Ö£¬ÈçÏ pixel_clk£½20000kHZ£¬»»ËãΪ MHZ Ϊ 20£¬\r
-¶ÔÓ¦µÄ 16 ½øÖÆÎª 0x14¡£\r
+������ pixel_clk ʱ����Ҫͬ����\r
+��middleware\services\gpu\drv\dpu\hal\dpu_hal_crg.c�����\r
+dpu_crg_set_vedio_mclk_div_ctl �� dpu_mclk_div ֵ����ֵ�ĺ���λ��Ҫ��\r
+pixel_clk �� 16 ����ֵ����һ�£����� pixel_clk��20000kHZ������Ϊ MHZ Ϊ 20��\r
+��Ӧ�� 16 ����Ϊ 0x14��\r
*/\r
const combo_dev_cfg_t g_panel_502x410_50_config = {\r
.devno = 0,\r
\r
/* display off sequence for common lcd */\r
const lcd_cmd_sequ g_common_466x466_cmd_display_off[] = {\r
+#ifdef BOARD_W9\r
+ {1, 2, {0xfe, 0x00}, 0}, /* select default cmd page */\r
+ {1, 1, {0x28}, 10}, /* display off */\r
+ {1, 1, {0x10}, 120}, /* sleep in */\r
+ {1, 2, {0x4f, 0x01}, 100}, /* sleep in */\r
+#else\r
{1, 2, {0xfe, 0x00}, 0}, /* select default cmd page */\r
{1, 1, {0x28}, 0}, /* display off */\r
{1, 1, {0x10}, 120}, /* sleep in */\r
- {1, 2, {0x4f, 0x01}, 0}, /* ½ødeepstandby ״̬ */\r
+ {1, 2, {0x4f, 0x01}, 0}, /* ��deepstandby ״̬ */\r
+#endif\r
};\r
\r
/* sleep in sequence for common lcd */\r
uapi_gpio_set_dir(VCI_LCD_GPIO, GPIO_DIRECTION_OUTPUT);\r
uapi_gpio_set_val(VCI_LCD_GPIO, GPIO_LEVEL_LOW);\r
#endif\r
+#ifndef BOARD_W9\r
uapi_tcxo_delay_ms(10); /* delay 10 ms */\r
+#endif\r
int resetvalue = uapi_gpio_get_output_val(RESET_LCD_GPIO);\r
int lcd_envalue = uapi_gpio_get_output_val(VCI_LCD_GPIO);\r
printf("Output RESET_LCD_GPIO %d , VCI_LCD_GPIO %d\r\n",resetvalue,lcd_envalue);\r
#else\r
uapi_gpio_set_val(RESET_LCD_GPIO, GPIO_LEVEL_LOW);\r
- uapi_gpio_set_dir(RESET_LCD_GPIO, GPIO_DIRECTION_INPUT); //ÉèÖóÉInput£¬ÊÇΪÁ˽â¾ö©µç £¿£¿\r
+ uapi_gpio_set_dir(RESET_LCD_GPIO, GPIO_DIRECTION_INPUT); //���ó�Input����Ϊ�˽��©�� ����\r
uapi_pin_set_pull(RESET_LCD_GPIO, PIN_PULL_DOWN);\r
#ifndef QSPI_DISPLAY\r
uapi_gpio_set_val(VCI_LCD_GPIO, GPIO_LEVEL_LOW);\r
}\r
\r
g_tp_send_buf[CST86XX_I2C_SEND_INDEX0] = reg_addr & 0xff;\r
- \r
+\r
+ g_tp_send_buf[1] = reg_cfg & 0xff;\r
+\r
data.send_buf = g_tp_send_buf;\r
data.send_len = CST86XX_REG_WRITE_LEN;\r
data.receive_buf = NULL;\r
tp_print("TOUCH:alread suspend");\r
return EXT_ERR_SUCCESS;\r
}\r
- \r
+\r
+ cst86xx_reset();//唤醒IC\r
+\r
/* Send Sleep Cmd */\r
reg_write = CST86XX_SLEEP_CMD;\r
for (retry_times = 0; retry_times < CST86XX_INIT_RETRY_TIMERS; retry_times++) {\r
#define CST86XX_REPORT_REG 0x0186 /* 设置中断上报频率 */\r
#define CST86XX_PIXEL_THRESHOLD_REG 0x00C3\r
/* Register Map */\r
-#define CST86XX_SLEEP_CMD 0xA5\r
+#define CST86XX_SLEEP_CMD 0xE5\r
#define CST86XX_FIRMWARE_VERSION 0xA9\r
#define CST86XX_FACTORY_ID 0xAA\r
#define CST86XX_HW_ID 0xA7\r
(sz) = NULL; \\r
} while (0)\r
\r
+// #define TP_DEBUG\r
#ifdef TP_DEBUG\r
#define tp_print(fmt, ...) \\r
do { \\r
* @Author: penglei 1624952103@qq.com\r
* @Date: 2025-01-16 12:35:15\r
* @LastEditors: penglei 1624952103@qq.com\r
- * @LastEditTime: 2025-02-14 11:37:22\r
+ * @LastEditTime: 2025-05-24 14:43:40\r
* @FilePath: /sdk615/code/sdk/zhihui/drivers/bp/bn02/bn02.c\r
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE\r
*/\r
bn02_replymsg(bn02_buf,sizeof(bn02_buf),1);\r
}\r
\r
-\r
- for(i = 0;i<48;i++)\r
- {\r
- printf("[%d]= 0x%x\n",i,bn02_buf[i]);\r
- }\r
+ // for(i = 0;i<48;i++)\r
+ // {\r
+ // printf("[%d]= 0x%x\n",i,bn02_buf[i]);\r
+ // }\r
}\r
\r
void bn02_start(void)\r
* @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
*/
#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
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);
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);
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)
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;
}
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);
}
}
}
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);
}
* @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
*/
}
// ots_stop();
g_charge_test_started = 0 ;
- }else{
- custom_exit_lpm();
}
return ERRCODE_SUCC;
}
}
ots_stop();
g_hx3508_test_started = 0 ;
- }else{
- custom_exit_lpm();
}
return ERRCODE_SUCC;
}
{
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
{
*/
#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;