From daf431ebbc690d82a6e19623b5d5cf831c9f37b2 Mon Sep 17 00:00:00 2001 From: penglei <1624952103@qq.com> Date: Tue, 13 Jan 2026 09:53:38 +0800 Subject: [PATCH] =?utf8?q?=E5=B1=8F=E8=94=BDgps=E6=97=A5=E5=BF=97=EF=BC=8C?= =?utf8?q?=E4=BC=98=E5=8C=963695=E4=BA=A7=E6=B5=8B=E4=BB=A3=E7=A0=81?= =?utf8?q?=EF=BC=8C=E4=BC=98=E5=8C=96fifo=20data=E8=AE=A1=E7=AE=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- code/sdk/zhihui/drivers/cywee/dml/cywee_dml.c | 9 +- code/sdk/zhihui/drivers/ppg/hx3695/hx3695.c | 85 ++++++++----------- .../drivers/ppg/hx3695/hx3695_factory_test.c | 24 +++--- .../drivers/ppg/hx3695/hx3695_factory_test.h | 14 +-- code/sdk/zhihui/services/gnss/src/NMEA0183.c | 22 ++--- 5 files changed, 73 insertions(+), 81 deletions(-) diff --git a/code/sdk/zhihui/drivers/cywee/dml/cywee_dml.c b/code/sdk/zhihui/drivers/cywee/dml/cywee_dml.c index 9ee3a7e80..ef36bd7cc 100644 --- a/code/sdk/zhihui/drivers/cywee/dml/cywee_dml.c +++ b/code/sdk/zhihui/drivers/cywee/dml/cywee_dml.c @@ -343,9 +343,14 @@ static void clean_sleep_data(void) memset(status_file_path, 0, sizeof(status_file_path)); memset(dir_path, 0, sizeof(dir_path)); memset(nap_file_path, 0, sizeof(nap_file_path)); + + wake_up_flag = 0; +} + +static void cywee_clean_ui_sleep_data(void) +{ memset(&ui_nap_data, 0, sizeof(ui_nap_data)); memset(&ui_sleep_data, 0, sizeof(ui_nap_data)); - wake_up_flag = 0; } void cywee_read_nap_data(void) @@ -1214,7 +1219,7 @@ void cywee_inactivity_mode_change(int mode) //睡眠 case INACTIVITY_MODE_SLEEPING: // CWM_OS_dbgPrintf("INACTIVITY_MODE_SLEEPING\r\n"); - + cywee_clean_ui_sleep_data(); //设置睡眠 memset(&scl, 0, sizeof(scl)); scl.iData[0] = 1; diff --git a/code/sdk/zhihui/drivers/ppg/hx3695/hx3695.c b/code/sdk/zhihui/drivers/ppg/hx3695/hx3695.c index 4ba09374d..ccf1d8cf2 100644 --- a/code/sdk/zhihui/drivers/ppg/hx3695/hx3695.c +++ b/code/sdk/zhihui/drivers/ppg/hx3695/hx3695.c @@ -79,6 +79,7 @@ static uint8_t avg_hrs = 0; static uint8_t time_cnt = 0; // static uint8_t his_wear = 2; // static uint8_t wear_cnt = 0; +static uint32_t last_system_time = 0; uint8_t alg_ram[11 * 1024] __attribute__((aligned(4))); @@ -187,6 +188,7 @@ void hx3695_320ms_timer_cfg(bool en) if(en) { hx3695_timers_start(); + uapi_get_timestampe_ms(&last_system_time); } else { @@ -357,10 +359,11 @@ void hx3695_get_led_para(ppg_sensor_data_t *ppg_sensor_dat) } } } - uint16_t hx3695_read_fifo_data(ppg_sensor_data_t *ppg_sensor_dat) { uint8_t databuf[3]; + uint8_t data_right = 0; + uint8_t exp_group = 0; // uint32_t ii=0; uint16_t data_len_h = 0; uint16_t data_len_l = 0; @@ -368,49 +371,40 @@ uint16_t hx3695_read_fifo_data(ppg_sensor_data_t *ppg_sensor_dat) uint16_t fifo_read_length = 0; uint16_t fifo_read_bytes = 0; uint16_t fifo_out_count = 0; - uint8_t retry_cnt = 0; + uint32_t now_system_time = 0; + data_len_h = hx3695_read_reg(0x21); data_len_l = hx3695_read_reg(0x20); fifo_data_length = (((data_len_h&0x01)<<8)|data_len_l); - // printf("111 fifo data length %d %d %d\n", data_len_h, data_len_l, fifo_data_length); - // DEBUG_PRINTF("fifo_data_length: %d\r\n", fifo_data_length); - - int threshold = 0; - - if(work_mode_flag == WEAR_MODE) - { - threshold = (ppg_sensor_dat->led_activated)*(ppg_sensor_dat->fs/5)*40; - } - else - { - threshold = (ppg_sensor_dat->led_activated)*(ppg_sensor_dat->fs/5)*4; - } - - // printf("threshold : %d\n",threshold); - - if(fifo_data_length > threshold) - { - for(int i = 0 ; i < 3; i++) - { - data_len_h = hx3695_read_reg(0x21); - data_len_l = hx3695_read_reg(0x20); - fifo_data_length = (((data_len_h&0x01)<<8)|data_len_l); - // printf("222 fifo data length again %d %d %d\n", data_len_h, data_len_l, fifo_data_length); - if(fifo_data_length > threshold) - { - retry_cnt ++; - } - else - break; - } - } - - - if (fifo_data_length>FIFO_DATA_LENGTH) - { - fifo_data_length = FIFO_DATA_LENGTH; - } - + now_system_time = get_system_time(); + exp_group = (now_system_time - last_system_time) / (1000 / ppg_sensor_dat->fs); + + for(uint8_t index = 0; index < 3; index++) + { + if(fifo_data_length > (exp_group + 4) * ppg_sensor_dat->led_activated) + { + data_len_h = hx3695_read_reg(0x21); + data_len_l = hx3695_read_reg(0x20); + fifo_data_length = (((data_len_h&0x01)<<8)|data_len_l); + } + else + { + data_right = 1; + break; + } + } + + if(data_right != 1) + { + fifo_data_length = (exp_group + 1) * ppg_sensor_dat->led_activated; + } + last_system_time = now_system_time; + + if (fifo_data_length>FIFO_DATA_LENGTH) + { + fifo_data_length = FIFO_DATA_LENGTH; + } + if(fifo_data_length<2*ppg_sensor_dat->led_activated) { return 0; @@ -427,15 +421,6 @@ uint16_t hx3695_read_fifo_data(ppg_sensor_data_t *ppg_sensor_dat) hx3695_get_led_para(ppg_sensor_dat); - if(retry_cnt >= 3) - { - if(work_mode_flag == WEAR_MODE) - fifo_out_count = 25; - else - fifo_out_count = 8; - } - - return fifo_out_count; } diff --git a/code/sdk/zhihui/drivers/ppg/hx3695/hx3695_factory_test.c b/code/sdk/zhihui/drivers/ppg/hx3695/hx3695_factory_test.c index 5078ae56f..8bebf06b9 100644 --- a/code/sdk/zhihui/drivers/ppg/hx3695/hx3695_factory_test.c +++ b/code/sdk/zhihui/drivers/ppg/hx3695/hx3695_factory_test.c @@ -77,7 +77,7 @@ void hx3695_factory_ft_card_test_config(void)//�ҿ�15mm�߶Ȳ���� uint8_t phase2_tia_cap = 4; /* 0= ; 1= ; 2= ; 3= ; 4= ; 5= ; 6= ; 7= */ uint8_t phase2_led_drv1_cha_sel = LDR0_FT_SEL; /* 1 = ldr1; 2 = ldr2; 4 = ldr3; 8 = ldr4 ; */ uint8_t phase2_led_drv2_cha_sel = 0x00; - uint8_t phase2_pd_sel = LDR0_PD_FT_SEL; /* 1 = pd1; 2 = pd2; 4 = pd3*/ + uint8_t phase2_pd_sel = LDR0_PD_FT_GRAY_SEL; /* 1 = pd1; 2 = pd2; 4 = pd3*/ uint8_t phase2_als_offset_idac = 0; /* 0~255 = 0 ~ 128ua , step = 0.5ua */ uint8_t phase2_led_offset_idac = 0; /* 0~255 = 0 ~ 64ua , step = 0.25ua */ uint8_t phase2_ldr1_cur = DRV1_GRAD_CUR; /* 0~255 = 0 ~ 200ma, step = 0.8ma */ @@ -94,7 +94,7 @@ void hx3695_factory_ft_card_test_config(void)//�ҿ�15mm�߶Ȳ���� uint8_t phase3_tia_cap = 4; /* 0= ; 1= ; 2= ; 3= ; 4= ; 5= ; 6= ; 7= */ uint8_t phase3_led_drv1_cha_sel = LDR1_FT_SEL; /* 1 = ldr1; 2 = ldr2; 4 = ldr3; 8 = ldr4 ; */ uint8_t phase3_led_drv2_cha_sel = 0; - uint8_t phase3_pd_sel = LDR1_PD_FT_SEL; /* 1 = pd1; 2 = pd2; 4 = pd3*/ + uint8_t phase3_pd_sel = LDR1_PD_FT_GRAY_SEL; /* 1 = pd1; 2 = pd2; 4 = pd3*/ uint8_t phase3_als_offset_idac = 0; /* 0~255 = 0 ~ 128ua , step = 0.5ua */ uint8_t phase3_led_offset_idac = 0; /* 0~255 = 0 ~ 64ua , step = 0.25ua */ uint8_t phase3_ldr1_cur = DRV1_GRAD_CUR; /* 0~255 = 0 ~ 200ma, step = 0.8ma */ @@ -112,7 +112,7 @@ void hx3695_factory_ft_card_test_config(void)//�ҿ�15mm�߶Ȳ���� uint8_t phase4_tia_cap = 4; /* 0= ; 1= ; 2= ; 3= ; 4= ; 5= ; 6= ; 7= */ uint8_t phase4_led_drv1_cha_sel = LDR2_FT_SEL; /* 1 = ldr1; 2 = ldr2; 4 = ldr3; 8 = ldr4 ; */ uint8_t phase4_led_drv2_cha_sel = 0; - uint8_t phase4_pd_sel = LDR2_PD_FT_SEL; /* 1 = pd1; 2 = pd2; 4 = pd3*/ + uint8_t phase4_pd_sel = LDR2_PD_FT_GRAY_SEL; /* 1 = pd1; 2 = pd2; 4 = pd3*/ uint8_t phase4_als_offset_idac = 0; /* 0~255 = 0 ~ 128ua , step = 0.5ua */ uint8_t phase4_led_offset_idac = 0; /* 0~255 = 0 ~ 64ua , step = 0.25ua */ uint8_t phase4_ldr1_cur = DRV1_GRAD_CUR; /* 0~255 = 0 ~ 200ma, step = 0.8ma */ @@ -129,7 +129,7 @@ void hx3695_factory_ft_card_test_config(void)//�ҿ�15mm�߶Ȳ���� uint8_t phase5_tia_cap = 4; /* 0= ; 1= ; 2= ; 3= ; 4= ; 5= ; 6= ; 7= */ uint8_t phase5_led_drv1_cha_sel = LDR3_FT_SEL; /* 1 = ldr1; 2 = ldr2; 4 = ldr3; 8 = ldr4 ; */ uint8_t phase5_led_drv2_cha_sel = 0; - uint8_t phase5_pd_sel = LDR3_PD_FT_SEL; /* 1 = pd1; 2 = pd2; */ + uint8_t phase5_pd_sel = LDR3_PD_FT_GRAY_SEL; /* 1 = pd1; 2 = pd2; */ uint8_t phase5_als_offset_idac = 0; /* 0~255 = 0 ~ 128ua , step = 0.5ua */ uint8_t phase5_led_offset_idac = 0; /* 0~255 = 0 ~ 64ua , step = 0.25ua */ uint8_t phase5_ldr1_cur = DRV1_GRAD_CUR; /* 0~255 = 0 ~ 200ma, step = 0.8ma */ @@ -750,9 +750,7 @@ void hx3695_factory_ft_leak_light_test_config(void)//©�������� /////////FIFO and adc conversion ready config//////// /////////FIFO and adc conversion ready config//////// #if defined(INT_MODE) //(FIFO_ALL_MOST_FULL) - hx3695_write_reg(0X1b, 0x90);// bits<3:0> fifo data sel, 0000 = p1;0001= p2;0010=p3;\ - 0011=p4;0100=p5;0101=p6;0110=p7;\ - bits<7> fifo enble + hx3695_write_reg(0X1b, 0x90);// bits<3:0> fifo data sel, 0000 = p1;0001= p2;0010=p3;0011=p4;0100=p5;0101=p6;0110=p7;bits<7> fifo enble hx3695_write_reg(0X1c, (fifo_watermark&0xff)); //fifo_watermark hx3695_write_reg(0X1d, fifo_watermark<<8); //bit<0>=fifo_watermark[8] hx3695_write_reg(0X33, 0x83); // int width @@ -1125,7 +1123,7 @@ void hx3695_factory_Gnoise_config(void) // ������� /////////FIFO and adc conversion ready config//////// /////////FIFO and adc conversion ready config//////// #if defined(INT_MODE) //(FIFO_ALL_MOST_FULL) - hx3695_write_reg(0X1b, 0x90);// bits<3:0> fifo data sel, 0000 = p1;0001= p2;0010=p3;0011=p4;0100=p5;0101=p6;0110=p7;bits<7> fifo enble + hx3695_write_reg(0X1b, 0x90);// bits<3:0> fifo data sel, 0000 = p1;0001= p2;0010=p3;0011=p4;0100=p5;0101=p6;0110=p7; bits<7> fifo enble hx3695_write_reg(0X1c, (fifo_watermark&0xff)); //fifo_watermark hx3695_write_reg(0X1d, fifo_watermark<<8); //bit<0>=fifo_watermark[8] hx3695_write_reg(0X33, 0x83); // int width @@ -1520,14 +1518,14 @@ void hx3695_factory_ft_single_check_config(void) /////////FIFO and adc conversion ready config//////// /////////FIFO and adc conversion ready config//////// #if defined(INT_MODE) //(FIFO_ALL_MOST_FULL) - hx3695_write_reg(0X1b, 0x90);// bits<3:0> fifo data sel, 0000 = p1;0001= p2;0010=p3;0011=p4;0100=p5;0101=p6;0110=p7;bits<7> fifo enble + hx3695_write_reg(0X1b, 0x90);// bits<3:0> fifo data sel, 0000 = p1;0001= p2;0010=p3;0011=p4;0100=p5;0101=p6;0110=p7; bits<7> fifo enble hx3695_write_reg(0X1c, (fifo_watermark&0xff)); //fifo_watermark hx3695_write_reg(0X1d, fifo_watermark<<8); //bit<0>=fifo_watermark[8] hx3695_write_reg(0X33, 0x83); // int width hx3695_write_reg(0X38, 0x04); // int sel,00=close almost full int,04=enable almost full int #else - hx3695_write_reg(0X1b, 0x90);// bits<3:0> fifo data sel, 0000 = p1;0001= p2;0010=p3;0011=p4;0100=p5;0101=p6;0110=p7;\bits<7> fifo enble + hx3695_write_reg(0X1b, 0x90);// bits<3:0> fifo data sel, 0000 = p1;0001= p2;0010=p3;0011=p4;0100=p5;0101=p6;0110=p7;bits<7> fifo enble hx3695_write_reg(0X36, 0x00); //intrupt hx3695_write_reg(0X38, 0x00); // int sel,00=close almost full int,01= prf int 04=enable almost full int @@ -1895,9 +1893,7 @@ void hx3695_factory_ft_aging_check_config(void) /////////FIFO and adc conversion ready config//////// /////////FIFO and adc conversion ready config//////// #if defined(INT_MODE) //(FIFO_ALL_MOST_FULL) - hx3695_write_reg(0X1b, 0x90);// bits<3:0> fifo data sel, 0000 = p1;0001= p2;0010=p3;\ - 0011=p4;0100=p5;0101=p6;0110=p7;\ - bits<7> fifo enble + hx3695_write_reg(0X1b, 0x90);// bits<3:0> fifo data sel, 0000 = p1;0001= p2;0010=p3;0011=p4;0100=p5;0101=p6;0110=p7;bits<7> fifo enble hx3695_write_reg(0X1c, (fifo_watermark&0xff)); //fifo_watermark hx3695_write_reg(0X1d, fifo_watermark<<8); //bit<0>=fifo_watermark[8] hx3695_write_reg(0X33, 0x83); // int width @@ -2604,6 +2600,7 @@ FT_RESULTS_t hx3695_factroy_test(TEST_MODE_t test_mode) factory_green = ft_result.ldr0_data_final; factory_red = ft_result.ldr1_data_final; factory_ir = ft_result.ldr2_data_final; + // TYHX_LOG("leak LDR0=%d\r\n",hrsresult.leak_ldr0); TYHX_LOG("leak LDR0=%d\r\n",ft_result.ldr0_data_final); TYHX_LOG("leak LDR1=%d\r\n",ft_result.ldr1_data_final); @@ -2623,6 +2620,7 @@ FT_RESULTS_t hx3695_factroy_test(TEST_MODE_t test_mode) factory_red = ft_result.ldr1_data_final; factory_ir = ft_result.ldr2_data_final; + // hrsresult.card_ldr3 = ft_result.ldr3_data_final; TYHX_LOG("leak LDR0=%d\r\n",ft_result.ldr0_data_final); TYHX_LOG("leak LDR1=%d\r\n",ft_result.ldr1_data_final); TYHX_LOG("leak LDR2=%d\r\n",ft_result.ldr2_data_final); diff --git a/code/sdk/zhihui/drivers/ppg/hx3695/hx3695_factory_test.h b/code/sdk/zhihui/drivers/ppg/hx3695/hx3695_factory_test.h index 201fa7a84..f2f9d54a0 100644 --- a/code/sdk/zhihui/drivers/ppg/hx3695/hx3695_factory_test.h +++ b/code/sdk/zhihui/drivers/ppg/hx3695/hx3695_factory_test.h @@ -6,22 +6,26 @@ /***********ѡ��*************/ -#define LDR0_FT_SEL 0x50 -#define LDR1_FT_SEL 0x28 -#define LDR2_FT_SEL 0x81 -#define LDR3_FT_SEL 0x81 +#define LDR0_FT_SEL 0x20 +#define LDR1_FT_SEL 0x40 +#define LDR2_FT_SEL 0x80 +#define LDR3_FT_SEL 0x20 #define LDR4_FT_SEL 0x40 #define LDR5_FT_SEL 0x80 /***********ѡPD*************/ #define LDR0_PD_FT_SEL 0x06 -#define LDR1_PD_FT_SEL 0x06 +#define LDR1_PD_FT_SEL 0x09 #define LDR2_PD_FT_SEL 0x06 #define LDR3_PD_FT_SEL 0x06 #define LDR4_PD_FT_SEL 0x0f #define LDR5_PD_FT_SEL 0x0f #define ALS_PD_FT_SEL 0x0f +#define LDR0_PD_FT_GRAY_SEL 0x01 +#define LDR1_PD_FT_GRAY_SEL 0x02 +#define LDR2_PD_FT_GRAY_SEL 0x04 +#define LDR3_PD_FT_GRAY_SEL 0x08 /***********���õ���*************/ #define DRV1_LEAK_CUR 64 //Ĭ������ led driver 1 ����50MA��driver2�����õ��� diff --git a/code/sdk/zhihui/services/gnss/src/NMEA0183.c b/code/sdk/zhihui/services/gnss/src/NMEA0183.c index ccda54c48..0c67d06e7 100644 --- a/code/sdk/zhihui/services/gnss/src/NMEA0183.c +++ b/code/sdk/zhihui/services/gnss/src/NMEA0183.c @@ -375,17 +375,17 @@ static unsigned char nmea_term_complete(gps_nmea_t* pnmea, gps_data_t* pdata) break; case GPS_SENTENCE_GSV + 1: // GSV numMsg 2 GSV 语句总数。 pnmea->gsvpagecount = (unsigned char)sring_to_int((const char*)pnmea->term, (void*)0); - printf("gsv pagecount %d\r\n",pnmea->gsvpagecount ); + // printf("gsv pagecount %d\r\n",pnmea->gsvpagecount ); pnmea->gps_data_good=1; break; case GPS_SENTENCE_GSV + 2: // GSV msgNo GSV 语句编号。 pnmea->gsvpage = (unsigned char)sring_to_int((const char*)pnmea->term, (void*)0); - printf("gsv gsvpage %d\r\n",pnmea->gsvpage ); + // printf("gsv gsvpage %d\r\n",pnmea->gsvpage ); break; case GPS_SENTENCE_GSV + 3: // GSV numSV 可见卫星总数。 { pnmea->starcount = (unsigned char)sring_to_int((const char*)pnmea->term, (void*)0); - printf("gsv starcount %d\r\n",pnmea->starcount ); + // printf("gsv starcount %d\r\n",pnmea->starcount ); if (pnmea->gsvpage==pnmea->gsvpagecount) { //最后一页星的数量 //非最后一页的中间任意一页一定是4颗星 @@ -399,48 +399,48 @@ static unsigned char nmea_term_complete(gps_nmea_t* pnmea, gps_data_t* pdata) case GPS_SENTENCE_GSV + 4: // GSV svid 卫星编号 startindex=4*(pnmea->gsvpage-1); pnmea->starts[0].starID=(unsigned char)sring_to_int((const char*)pnmea->term, (void*)0); - printf("gsv 0 startindex %d startid %d\r\n",startindex ,pnmea->starts[0].starID); + // printf("gsv 0 startindex %d startid %d\r\n",startindex ,pnmea->starts[0].starID); break; case GPS_SENTENCE_GSV + 7: // GSV cn0 载噪比:0~99,无效时为空 startindex=4*(pnmea->gsvpage-1); pnmea->starts[0].snr=(unsigned char)sring_to_int((const char*)pnmea->term, (void*)0); - printf("gsv 0 startindex %d snr %d\r\n",startindex ,pnmea->starts[0].snr); + // printf("gsv 0 startindex %d snr %d\r\n",startindex ,pnmea->starts[0].snr); break; case GPS_SENTENCE_GSV + 8: // GSV svid 卫星编号 N*4 startindex=4*(pnmea->gsvpage-1)+1; if (1>=pnmea->gsvpage_starcount) break; pnmea->starts[1].starID=(unsigned char)sring_to_int((const char*)pnmea->term, (void*)0); - printf("gsv 1 startindex %d startid %d\r\n",startindex ,pnmea->starts[1].starID); + // printf("gsv 1 startindex %d startid %d\r\n",startindex ,pnmea->starts[1].starID); break; case GPS_SENTENCE_GSV + 11: // GSV cn0 载噪比:0~99,无效时为空 startindex=4*(pnmea->gsvpage-1)+1; if (1>=pnmea->gsvpage_starcount) break; pnmea->starts[1].snr=(unsigned char)sring_to_int((const char*)pnmea->term, (void*)0); - printf("gsv 1 startindex %d snr %d\r\n",startindex ,pnmea->starts[1].snr); + // printf("gsv 1 startindex %d snr %d\r\n",startindex ,pnmea->starts[1].snr); break; case GPS_SENTENCE_GSV + 12: // GSV svid 卫星编号 startindex=4*(pnmea->gsvpage-1)+2; if (2>=pnmea->gsvpage_starcount) break; pnmea->starts[2].starID=(unsigned char)sring_to_int((const char*)pnmea->term, (void*)0); - printf("gsv 2 startindex %d startid %d\r\n",startindex ,pnmea->starts[2].starID); + // printf("gsv 2 startindex %d startid %d\r\n",startindex ,pnmea->starts[2].starID); break; case GPS_SENTENCE_GSV + 15: // GSV cn0 载噪比:0~99,无效时为空 startindex=4*(pnmea->gsvpage-1)+2; if (2>=pnmea->gsvpage_starcount) break; pnmea->starts[2].snr=(unsigned char)sring_to_int((const char*)pnmea->term, (void*)0); - printf("gsv 2 startindex %d snr %d\r\n",startindex ,pnmea->starts[2].snr); + // printf("gsv 2 startindex %d snr %d\r\n",startindex ,pnmea->starts[2].snr); break; case GPS_SENTENCE_GSV + 16: // GSV svid 卫星编号 startindex=4*(pnmea->gsvpage-1)+3; if (3>=pnmea->gsvpage_starcount) break; pnmea->starts[3].starID=(unsigned char)sring_to_int((const char*)pnmea->term, (void*)0); - printf("gsv 3 startindex %d startid %d\r\n",startindex ,pnmea->starts[3].starID); + // printf("gsv 3 startindex %d startid %d\r\n",startindex ,pnmea->starts[3].starID); break; case GPS_SENTENCE_GSV + 19: // GSV cn0 载噪比:0~99,无效时为空 startindex=4*(pnmea->gsvpage-1)+3; if (3>=pnmea->gsvpage_starcount) break; pnmea->starts[3].snr=(unsigned char)sring_to_int((const char*)pnmea->term, (void*)0); - printf("gsv 3 startindex %d snr %d\r\n",startindex ,pnmea->starts[3].snr); + // printf("gsv 3 startindex %d snr %d\r\n",startindex ,pnmea->starts[3].snr); break; // time and date // -- 2.17.1