From 4c16cf5693d5df801fe4b54c52d945db2aa55b0e Mon Sep 17 00:00:00 2001 From: WXK <287788329@qq.com> Date: 星期五, 21 三月 2025 10:00:48 +0800 Subject: [PATCH] 修改4g打印乱码的错误问题 --- keil/include/main/main.c | 119 ++++++++++++++++++++++++++++++++++++++++------------------- 1 files changed, 81 insertions(+), 38 deletions(-) diff --git a/keil/include/main/main.c b/keil/include/main/main.c index 0cc768d..7ced589 100644 --- a/keil/include/main/main.c +++ b/keil/include/main/main.c @@ -24,12 +24,6 @@ #include "PCA9555.h" #include "WS2812.h" #include "DBG.h" -typedef enum -{ - RTCMMODE_NONE, - RTCMMODE_TCP, - RTCMMODE_NTRIP, -}RTCMMode; //#define DEBUG_MODE extern int simple_main(void); @@ -126,14 +120,14 @@ uint32_t lock; trace_flush(); lock = int_lock(); - LOG_INFO(TRACE_MODULE_APP, "进入深度休眠\r\n"); +// LOG_INFO(TRACE_MODULE_APP, "进入深度休眠\r\n"); // gps_air780_power_change(0,0);//关闭gps,4G PCA9555_Set_One_Value_Output(GPS_POWER,0);//关闭gps,4G PCA9555_Set_One_Value_Output(AIR780E_ENBALE,0);//关闭gps,4G sleep_timer_stop(); //adc_close(); power_enter_power_down_mode(1); - LOG_INFO(TRACE_MODULE_APP, "从休眠出来\r\n"); +// LOG_INFO(TRACE_MODULE_APP, "从休眠出来\r\n"); sys_reset(0); int_unlock(lock); } @@ -163,11 +157,11 @@ { //power_low_flag=1; //gps_air780_power_change(gps_power_state,0);//gps原样,关闭4G - LOG_INFO(TRACE_MODULE_APP, "电池电压低于3.3V,4G,GPS停止工作\r\n"); +// LOG_INFO(TRACE_MODULE_APP, "电池电压低于3.3V,4G,GPS停止工作\r\n"); }else{ //power_low_flag=0; //gps_air780_power_change(gps_power_state,1);//gps原样,开启4G - LOG_INFO(TRACE_MODULE_APP, "电池电压正常,4G,GPS,正常工作\r\n"); +// LOG_INFO(TRACE_MODULE_APP, "电池电压正常,4G,GPS,正常工作\r\n"); } PCA9555_Set_One_Value_Output(ADC_MINIUS,1);//拉高 } @@ -282,6 +276,9 @@ uint8_t uwb_enable_flag=0; uint8_t input5v_time; extern uint8_t taglist_num; +extern uint8_t ceshidata[500]; +extern uint8_t ceshichangdu; +uint8_t gps_ntripsend; static void sleep_timer_callback(void *dev, uint32_t time) { if(secondtask_count++%2==0) @@ -299,6 +296,7 @@ ledonflag=1; // ledontime=HIDO_TimerGetTick(); Set4LEDColor(uwbled,rtkled,led4g,powerled); +// uart_send(UART_ID1, ceshidata, 50,NULL); } input5v_time=1; if(taglist_num==0) @@ -309,6 +307,10 @@ } }else{ flag_secondtask = 0; + } + if(gps_ntripsend==1) + { + gps_ntripsend=2; } if(delaysleep_count>0) delaysleep_count--; @@ -352,7 +354,7 @@ Usart1ParseDataCallback = UsartParseDataHandler;//需改为默认为gps处理,UsartParseDataHandler为升级处理当调试时候改为 parameter_init_anchor();//g_com_map表初始化角色默认为基站 dev_id=g_com_map[DEV_ID];//这里不太对 - g_com_map[GROUP_ID]=9; +// g_com_map[GROUP_ID]=9; group_id=g_com_map[GROUP_ID];//组ID memcpy(&disoffset,&g_com_map[DIST_OFFSET],2); warning_distance=g_com_map[ALARM_DISTANCE1]; @@ -362,18 +364,37 @@ memcpy(&send_struct.gunLableId,&g_com_map[BIND_DEV_ID],2);//更新绑定ID send_struct.tagId=dev_id;//更新设备ID - g_com_map[IP_0]=111; - g_com_map[IP_1]=198; - g_com_map[IP_2]=60; - g_com_map[IP_3]=6; - g_com_map[PORT]=6666; - g_com_map[RTCMMODE_INDEX] = RTCMMODE_NTRIP; - snprintf((char *)&g_com_map[NTRIP_HOST_INDEX], 32, "140.143.212.42"); - g_com_map[NTRIP_PORT_INDEX] = HIDO_UtilStrToInt("8005"); -// snprintf((char *)&g_com_map[NTRIP_PORT_INDEX], 32, "8005"); - snprintf((char *)&g_com_map[NTRIP_USERNANME_INDEX], 32, "test005"); - snprintf((char *)&g_com_map[NTRIP_PASSWORD_INDEX], 32, "Hxzk0228"); - snprintf((char *)&g_com_map[NTRIP_SOURCENAME_INDEX], 32, "RTCM32_GNSS2"); +// g_com_map[IP_0]=111; +// g_com_map[IP_1]=198; +// g_com_map[IP_2]=60; +// g_com_map[IP_3]=6; +// g_com_map[PORT]=6666; + +// g_com_map[IP_0]=117; +// g_com_map[IP_1]=72; +// g_com_map[IP_2]=111; +// g_com_map[IP_3]=237; +// g_com_map[PORT]=7000; +// +// g_com_map[TCP_IP_0]=111; +// g_com_map[TCP_IP_1]=198; +// g_com_map[TCP_IP_2]=60; +// g_com_map[TCP_IP_3]=6; +// g_com_map[TCP_PORT]=1234; + /* + RTCMMODE_NONE, + RTCMMODE_TCP, + RTCMMODE_NTRIP, + */ +// g_com_map[RTCMMODE_INDEX] = RTCMMODE_NTRIP; + + +// snprintf((char *)&g_com_map[NTRIP_HOST_INDEX], 32, "140.143.212.42"); +// g_com_map[NTRIP_PORT_INDEX] = HIDO_UtilStrToInt("8005"); +//// snprintf((char *)&g_com_map[NTRIP_PORT_INDEX], 32, "8005"); +// snprintf((char *)&g_com_map[NTRIP_USERNANME_INDEX], 32, "test005"); +// snprintf((char *)&g_com_map[NTRIP_PASSWORD_INDEX], 32, "Hxzk0228"); +// snprintf((char *)&g_com_map[NTRIP_SOURCENAME_INDEX], 32, "RTCM32_GNSS2"); if(g_com_map[BIND_DEV_ID]==0) @@ -413,13 +434,13 @@ { LOG_INFO(TRACE_MODULE_APP,"单点定位模式模式. \r\n"); } + delay_ms(500); } uint32_t adctick = 0; uint8_t only_one_flag; uint16_t chongman_time; uint8_t bat_percent_old=100; uint8_t input5vflag; -uint8_t kai_4g_flag; void IdleTask(void) { if(read_5v_input_pca()) @@ -462,13 +483,10 @@ } if(DBG_GetMode() == DBG_MODE_SHELL) { - if(kai_4g_flag==0) - { - kai_4g_flag=1; -// PCA9555_Set_One_Value_Output(AIR780E_ENBALE,1); - Shell_Init(); - } - HIDO_InputPoll(); + if(g_com_map[RTCMMODE_INDEX] == RTCMMODE_TCP) + {TCPClient_Poll_1();} + //HIDO_InputPoll(); + DBG_Poll(); Internet_Poll(); HIDO_TimerPoll(); HIDO_ATLitePoll(); @@ -480,7 +498,20 @@ flag_secondtask = 0; SecondTask(); } + if(DBG_GetMode() == DBG_MODE_SHELL) + { + Set4LEDColor(uwbled,rtkled,led4g,powerled); + if(g_com_map[CNT_RESTART]==1) + { + g_com_map[CNT_RESTART]=0; + save_com_map_to_flash(); + NVIC_SystemReset(); + } + } + else + { Set4LEDColor(0,0,0,powerled); + } if(input5v_time) { if(!read_5v_input_pca()) @@ -538,6 +569,7 @@ uart_close(UART_ID1);//解绑原来串口1 uart_close(UART_ID0);//解绑原来串口0 } + uint8_t flag_4guart_needinit=0; uint8_t index1,index2,index3; int16_t Voltage_input; @@ -545,6 +577,8 @@ int test1,test3; uint32_t test4; extern uint8_t receive_flag; +extern uint8_t YUANGPS_ParseGGA_data[256]; +extern uint8_t YUANGPS_ParseGGA_changdu; int main(void) { board_clock_run(); @@ -569,7 +603,9 @@ calib_chip(); wdt_close(WDT_ID0); Uart_Register(UART_ID_4G, UART_ID0); -// Uart_Register(UART_ID_DBG, UART_ID1); + Uart_Register(UART_ID_DBG_GPS, UART_ID1); + DBG_Init(); + Program_Init(); Internet_Init(); TCPClient_Init(); @@ -577,6 +613,10 @@ { NTRIPClient_Init(); NTRIPApp_Init(); + } + if(g_com_map[RTCMMODE_INDEX] == RTCMMODE_TCP) + { + TCPClient_Init_1(); } gpio_open(); LED_output_init();//配置彩色灯引脚 @@ -593,7 +633,7 @@ pca_input_detection_init(pca_handler);//pca检测输入 Uwb_init(); OpenUWB(); - DBG_Init(); +// DBG_SetMode(DBG_MODE_SHELL); // Shell_Init(); if(!read_5v_input_pca()) @@ -604,11 +644,12 @@ delay_ms(500); Set4LEDColor(LEDOFF,LEDOFF,LEDOFF,LEDOFF); } -// state5v=1; -// state5V_prase_flag=state5v; -// gps_prase_flag=0;//解除gps解析 -// uart1_change_from_gps_to_debug();//测试 -// PCA9555_Set_One_Value_Output(MCU_A,1);//输出高电平切换为5V输入 + g_com_map[MODBUS_MODE] = 0; + state5v=0; + state5V_prase_flag=state5v; + gps_prase_flag=1;//恢复gps解析 + uart1_change_from_debug_to_gps();//测试 + PCA9555_Set_One_Value_Output(MCU_A,0);//输出低电平切换为GPS while (1) { uwb_app_poll(); @@ -616,6 +657,8 @@ HIDO_TimerPoll(); HIDO_ATLitePoll(); TCPClient_Poll(); + if(g_com_map[RTCMMODE_INDEX] == RTCMMODE_TCP) + {TCPClient_Poll_1();} if(flag_secondtask) { flag_secondtask = 0; -- Gitblit v1.9.3