From a842ed1ea9caa76785625ad6b7728a919bb4ce2c Mon Sep 17 00:00:00 2001 From: zhangbo <zhangbo@qq.com> Date: 星期三, 02 七月 2025 18:49:01 +0800 Subject: [PATCH] Merge branch 'MK大工卡-低精度GPS-1/5HZ' of http://47.108.70.204:60062/r/ChinaUWBProject into MK大工卡-低精度GPS-1/5HZ --- keil/include/main/main.c | 383 +++++++++++++++++++++++++++--------------------------- 1 files changed, 192 insertions(+), 191 deletions(-) diff --git a/keil/include/main/main.c b/keil/include/main/main.c index d16e8ad..24336ea 100644 --- a/keil/include/main/main.c +++ b/keil/include/main/main.c @@ -145,54 +145,20 @@ lock = int_lock(); // LOG_INFO(TRACE_MODULE_APP, "进入深度休眠\r\n"); // gps_air780_power_change(0,0);//关闭gps,4G - PCA9555_Set_One_Value_Output(LED_POWER,0);//输出低电平关闭LED + PCA9555_Set_One_Value_Output(LED_POWER,0);//输出低电平关闭LED PCA9555_Set_One_Value_Output(GPS_POWER,0);//关闭gps,4G + PCA9555_Set_One_Value_Output(TTS_ENABLE,0); + PCA9555_Set_One_Value_Output(AIR780E_ENBALE,0);//关闭gps,4G - sleep_timer_stop(); + + sleep_timer_stop(); + //adc_close(); power_enter_power_down_mode(1); // LOG_INFO(TRACE_MODULE_APP, "从休眠出来\r\n"); sys_reset(0); int_unlock(lock); -//// uint32_t lock; -//// trace_flush(); -//// lock = int_lock(); -////// LOG_INFO(TRACE_MODULE_APP, "进入深度休眠\r\n"); -//// gps_air780_power_change(0,0);//关闭gps,4G -// deep_sleep_falg=0; -// PCA9555_Set_One_Value_Output(LED_POWER,0);//输出低电平关闭LED -// PCA9555_Set_One_Value_Output(GPS_POWER,0);//关闭gps,4G -//// PCA9555_Set_One_Value_Config(MAIN_RI,0);//配置4G唤醒引脚为输入 -//// -////// PCA9555_Set_One_Value_Output(MAIN_RI,1); -// boot_deinit(); -// CloseUWB(); -// if(onlyoneflag) -// { -// onlyoneflag=0; -// userkey_state=4; -// heartbeasend_flag = 1; -// sleepflag=1; -// sleepflagtime=HIDO_TimerGetTick(); -// } -// if(sleepflag) -// { -// if(HIDO_TimerGetTick() - sleepflagtime>3) -// { -// PCA9555_Set_One_Value_Output(AIR780E_ENBALE,0);//关闭gps,4G -// } -// } -// -//// PCA9555_Set_One_Value_Output(AIR780E_ENBALE,0);//关闭gps,4G -// -//// sleep_timer_stop(); -//// //adc_close(); -//// power_enter_power_down_mode(1); -//// delay_us(200000); -//// sys_reset(0); -////// LOG_INFO(TRACE_MODULE_APP, "从休眠出来\r\n"); -//// int_unlock(lock); } uint8_t jiancebat_percent_flag; static void adc_callback(void *data, uint32_t number) @@ -255,6 +221,7 @@ userkey_state=4; heartbeasend_flag = 1; sleepflag=1; + sleepflagtime=HIDO_TimerGetTick(); } } @@ -301,6 +268,7 @@ keystarttime3 = HIDO_TimerGetTick(); } } +uint8_t user_Power_keyflag=0; void PowerTask(void) { if(read_powerkey_input_pca()) @@ -320,9 +288,12 @@ // PCA9555_Set_One_Value_Output(GPS_POWER,0);//关GPS // PCA9555_Set_One_Value_Output(PWR_ENABLE,0);//低电平关闭 heartbeasend_flag = 1; + user_Power_keyflag=1; guanjiflag=1; userkey_state = 2; guanjiflagtime=HIDO_TimerGetTick(); + g_com_map[KEY_POWERON] = user_Power_keyflag; + save_com_map_to_flash(); } }else { @@ -541,6 +512,10 @@ { g_com_map[UWBFrequency]=1; } + if(g_com_map[URT_BQ]>1) + { + g_com_map[URT_BQ]=0; + } // g_com_map[IP_0]=111; // g_com_map[IP_1]=198; // g_com_map[IP_2]=60; @@ -589,7 +564,7 @@ // } g_com_map[MODBUS_MODE] = 0; log_4g_enable_flag=g_com_map[LOG_4G_ENABLE]; - g_com_map[VERSION] = (1<<8)|24; + g_com_map[VERSION] = (1<<8)|25; LOG_INFO(TRACE_MODULE_APP,"设备ID: %x .\r\n",dev_id); @@ -600,6 +575,7 @@ LOG_INFO(TRACE_MODULE_APP,"设备UWB工作间隔: %x .\r\n",g_com_map[UWBFrequency]); LOG_INFO(TRACE_MODULE_APP,"设备GPS工作间隔: %x .\r\n",g_com_map[GPSFrequency]); LOG_INFO(TRACE_MODULE_APP,"当前GPS工作波特率: %d .\r\n",gpsbaudrate1); +// LOG_INFO(TRACE_MODULE_APP,"充电是否开机标志位: %d .\r\n",g_com_map[URT_BQ]); if(g_com_map[RTCMMODE_INDEX] == RTCMMODE_TCP) { LOG_INFO(TRACE_MODULE_APP,"TCP_RTCM模式,服务器地址: %d.%d.%d.%d:%d.\r\n",g_com_map[TCP_IP_0],g_com_map[TCP_IP_1],g_com_map[TCP_IP_2],g_com_map[TCP_IP_3],g_com_map[TCP_PORT]); @@ -628,166 +604,180 @@ extern uint8_t jiancebat_percent_flag; void IdleTask(void) { -if(read_5v_input_pca()) - { - if(state5v==0) +// if(g_com_map[URT_BQ]) +// {} +// else +// { +// +// +// } + + if(read_5v_input_pca()) { - 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输入 - } - chongman_time=0; - only_one_flag=0; - uwbled=0; - rtkled=0; - led4g=0; - powerled=0; -// PCA9555_Set_One_Value_Output(AIR780E_ENBALE,0); - while(1) - { - nomove_count = 0; - wdt_ping(WDT_ID0);//喂狗 -// adctick = HIDO_TimerGetTick(); - if(HIDO_TimerGetTick()-adctick>600) //10分钟采样一次 电量 + if(state5v==0) { - chongman_time=chongman_time+60; - adctick = HIDO_TimerGetTick(); - PCA9555_Set_One_Value_Output(ADC_MINIUS,0);//拉低 - adc_get(&sample[0], NUM_SAMPLES, adc_callback);//adc采样 - } - if(bat_percent>=99&&!only_one_flag) - { - only_one_flag=1; + 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输入 + } chongman_time=0; - } - if(bat_percent>=99&&chongman_time>=180) + only_one_flag=0; + uwbled=0; + rtkled=0; + led4g=0; + powerled=0; + // PCA9555_Set_One_Value_Output(AIR780E_ENBALE,0); + while(1) { - powerled = GREEN; - }else{ - powerled = RED; - } - if(DBG_GetMode() == DBG_MODE_SHELL) - { - if(ota_flag==1) - { -// OTA_Poll(); -// HTTPClient_Poll(); - } - else - { - uwb_app_poll(); - } - Internet_Poll(); - HIDO_TimerPoll(); - HIDO_ATLitePoll(); - TCPClient_Poll(); - if(g_com_map[RTCMMODE_INDEX] == RTCMMODE_TCP) - {TCPClient_Poll_1();} - if(flag_secondtask) - { - flag_secondtask = 0; - SecondTask(); - } - UserKeyTask(); - } - UART_CheckReceive(); - if(flag_secondtask) - { - flag_secondtask = 0; - SecondTask(); - } - if(DBG_GetMode() == DBG_MODE_SHELL) - { - Set4LEDColor(uwbled,rtkled,led4g,powerled); - if(g_com_map[CNT_RESTART]==1) + nomove_count = 0; + wdt_ping(WDT_ID0);//喂狗 + // adctick = HIDO_TimerGetTick(); + if(HIDO_TimerGetTick()-adctick>600) //10分钟采样一次 电量 { - g_com_map[CNT_RESTART]=0; - save_com_map_to_flash(); - NVIC_SystemReset(); + chongman_time=chongman_time+60; + adctick = HIDO_TimerGetTick(); + PCA9555_Set_One_Value_Output(ADC_MINIUS,0);//拉低 + adc_get(&sample[0], NUM_SAMPLES, adc_callback);//adc采样 + } + if(bat_percent>=99&&!only_one_flag) + { + only_one_flag=1; + chongman_time=0; + } + if(bat_percent>=99&&chongman_time>=180) + { + powerled = GREEN; + }else{ + powerled = RED; + } + if(DBG_GetMode() == DBG_MODE_SHELL) + { + if(ota_flag==1) + { + // OTA_Poll(); + // HTTPClient_Poll(); + } + else + { + uwb_app_poll(); + } + Internet_Poll(); + HIDO_TimerPoll(); + HIDO_ATLitePoll(); + TCPClient_Poll(); + if(g_com_map[RTCMMODE_INDEX] == RTCMMODE_TCP) + {TCPClient_Poll_1();} + if(flag_secondtask) + { + flag_secondtask = 0; + SecondTask(); + } + UserKeyTask(); + } + UART_CheckReceive(); + if(flag_secondtask) + { + 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()) + { + break; + } } } - else - { - Set4LEDColor(0,0,0,powerled); - } - if(input5v_time) - { - if(!read_5v_input_pca()) - { - break; - } - } + // NVIC_SystemReset(); + // PCA9555_Set_One_Value_Output(PWR_ENABLE,0); + input5vflag=1; } -// NVIC_SystemReset(); -// PCA9555_Set_One_Value_Output(PWR_ENABLE,0); - input5vflag=1; - } - else - { - if(state5v==1) + else { - 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 - PCA9555_Set_One_Value_Output(LED_POWER,0);//输出低电平关闭LED - PCA9555_Set_One_Value_Output(AIR780E_ENBALE,0); - PCA9555_Set_One_Value_Output(GPS_POWER,0);//关GPS - PCA9555_Set_One_Value_Output(PWR_ENABLE,0);//低电平关闭 - delay_us(1000000); - - } - } - UART_CheckReceive(); - if(g_com_map[CNT_RESTART]==1) - { - g_com_map[CNT_RESTART]=0; - NVIC_SystemReset(); - - } - if(g_com_map[MAP_SIGN_INDEX]!=0x55AA||g_com_map[COM_INTERVAL]==0) - { - NVIC_SystemReset(); - } - HIDO_TimerPoll(); - if(ledonflag==1) - { - ledonflag=0; - uwbled=0; - rtkled=0; - led4g=0; - powerled=0; - Set4LEDColor(LEDOFF,LEDOFF,LEDOFF,LEDOFF); - } - if(bat_percent<1&&bat_percent_only_one&&jiancebat_percent_flag) - { - userkey_state=3; - heartbeasend_flag = 1; - guanjiflag=1; - guanjiflagtime=HIDO_TimerGetTick(); - bat_percent_only_one=0; - } - if(guanjiflag) - { - rtkled=WHITE; - uwbled=WHITE; - led4g=WHITE; - powerled=WHITE; - Set4LEDColor(uwbled,rtkled,led4g,powerled); - if(HIDO_TimerGetTick() - guanjiflagtime>3) - { + if(state5v==1) + { + 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 PCA9555_Set_One_Value_Output(LED_POWER,0);//输出低电平关闭LED PCA9555_Set_One_Value_Output(AIR780E_ENBALE,0); PCA9555_Set_One_Value_Output(GPS_POWER,0);//关GPS PCA9555_Set_One_Value_Output(PWR_ENABLE,0);//低电平关闭 - } - - } + delay_us(1000000); + + } + } + UART_CheckReceive(); + if(g_com_map[CNT_RESTART]==1) + { + g_com_map[CNT_RESTART]=0; + NVIC_SystemReset(); + + } + if(g_com_map[MAP_SIGN_INDEX]!=0x55AA||g_com_map[COM_INTERVAL]==0) + { + NVIC_SystemReset(); + } + HIDO_TimerPoll(); + if(ledonflag==1) + { + ledonflag=0; + uwbled=0; + rtkled=0; + led4g=0; + powerled=0; + Set4LEDColor(LEDOFF,LEDOFF,LEDOFF,LEDOFF); + } + if(bat_percent<5&&jiancebat_percent_flag) + { + WT588E_PLAY(14); + } + if(bat_percent<1&&bat_percent_only_one&&jiancebat_percent_flag) + { + WT588E_PLAY(15); + userkey_state=3; + heartbeasend_flag = 1; + guanjiflag=1; + guanjiflagtime=HIDO_TimerGetTick(); + bat_percent_only_one=0; + } + if(guanjiflag) + { + rtkled=WHITE; + uwbled=WHITE; + led4g=WHITE; + powerled=WHITE; + Set4LEDColor(uwbled,rtkled,led4g,powerled); + if(HIDO_TimerGetTick() - guanjiflagtime>3) + { + PCA9555_Set_One_Value_Output(TTS_ENABLE,0); //关闭语音输入 + PCA9555_Set_One_Value_Output(LED_POWER,0); //输出低电平关闭LED + PCA9555_Set_One_Value_Output(AIR780E_ENBALE,0); + PCA9555_Set_One_Value_Output(GPS_POWER,0); //关GPS + PCA9555_Set_One_Value_Output(PWR_ENABLE,0); //低电平关闭 + } + + } } void boot_deinit(void) { @@ -931,7 +921,7 @@ // delay_ms(100); // gaodu=GetPressAndHeight(); PCA9555_init(); - board_debug_console_open_baud(TRACE_PORT_UART1,BAUD_115200); + board_debug_console_open_baud(TRACE_PORT_UART1,BAUD_921600); // while(1); // Reset reason reset_cause_get(); @@ -955,7 +945,8 @@ Uart_Register(UART_ID_DBG_GPS, UART_ID1); DBG_Init(); - + + SendComMap(0x50,0); Internet_Init(); TCPClient_Init(); // if(g_com_map[RTCMMODE_INDEX] == RTCMMODE_NTRIP) @@ -977,6 +968,16 @@ uart_receive(UART_ID1,m_EUART_DMA_RXBuf,EUART_RX_BUF_SIZE,uart_receive_callback); power_init(); Uwb_init(); + if(g_com_map[KEY_POWERON]==1) + { + WT588E_PLAY(0); //播报开机语音 + g_com_map[KEY_POWERON]=0; + save_com_map_to_flash(); + + + } + + if(g_com_map[UWBFrequency]&&g_com_map[UWBENBLE]) { OpenUWB(); @@ -1023,8 +1024,8 @@ flag_secondtask = 0; SecondTask(); } - IMUTask(); + IMUTask(); IdleTask(); - check_step_and_update_state(); + check_step_and_update_state(); } } -- Gitblit v1.9.3