From 3ec132c58bc4130f79390cebca35c176173cb67c Mon Sep 17 00:00:00 2001 From: WXK <287788329@qq.com> Date: 星期三, 12 三月 2025 15:23:26 +0800 Subject: [PATCH] 11111111111111 --- keil/include/main/main.c | 146 +++++++++++++++++++++++++++++++----------------- 1 files changed, 94 insertions(+), 52 deletions(-) diff --git a/keil/include/main/main.c b/keil/include/main/main.c index 67238fe..83aa6e0 100644 --- a/keil/include/main/main.c +++ b/keil/include/main/main.c @@ -135,7 +135,7 @@ .flow = UART_FLOW_CONTROL_NONE, .rx_level = UART_RXFIFO_CHAR_1, .tx_level = UART_TXFIFO_EMPTY, - .baud = BAUD_9600, + .baud = BAUD_115200, #if (TEST_UART_MODE == TEST_UART_POLL_MODE) .dma_en = false, .int_rx = false, @@ -166,7 +166,7 @@ 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); } @@ -254,8 +254,11 @@ Set4LEDColor(uwbled,rtkled,led4g,powerled); delay_ms(500); keystarttime = HIDO_TimerGetTick(); - PCA9555_Set_One_Value_Output(PWR_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);//低电平关闭 + } // if(HIDO_TimerGetTick() - keystarttime2>10) // { @@ -309,9 +312,9 @@ second_count = 0; MinuteTask(); } -// //UWB状态检测 -//if(!power_low_flag)//低供电下不需要检测重连 -// { + //UWB状态检测 +if(!power_low_flag)//低供电下不需要检测重连 + { if(IfTCPConnected()) { TCP_reconnect_timer =0; @@ -329,7 +332,7 @@ } } -// } + } HIDO_TimerTick(); // if(nomove_count<=g_com_map[NOMOVESLEEP_TIME])//防止溢出 nomove_count++; @@ -340,10 +343,13 @@ uint8_t tt=1; uint8_t flag_sleeptimer,flag_secondtask,secondtask_count,log_4g_enable_flag; uint8_t uwb_enable_flag=0; +uint8_t input5v_time; +extern uint8_t taglist_num; static void sleep_timer_callback(void *dev, uint32_t time) { if(secondtask_count++%2==0) - { + { + input5v_time=1; flag_secondtask = 1; if(!read_5v_input_pca()) { @@ -357,29 +363,41 @@ // ledontime=HIDO_TimerGetTick(); Set4LEDColor(uwbled,rtkled,led4g,powerled); } + input5v_time=1; + if(taglist_num==0) + { + CloseUWB(); + Uwb_init(); + OpenUWB(); + } }else{ flag_secondtask = 0; } if(delaysleep_count>0) delaysleep_count--; } +uint8_t test11,test21,test31,test41,test51; static void pca_handler(enum IO_PIN_T pin) { PCA9555_readdata(PCA9555_DEVICE_ADDR,pca9555writedata_input);//读输入寄存器的值 uint16_t gpio_state; gpio_state=(uint16_t)pca9555writedata_input[0]<<8|pca9555writedata_input[1]; + test41++; if(WAKE_UP_POSITION&gpio_state) { nomove_count=0; + test11++; } - if(!(MAIN_RI_POSITION&gpio_state)) - { - flag_4G_recdata = 1; - delaysleep_count = 3; - } +// if(!(MAIN_RI_POSITION&gpio_state)) +// { +// flag_4G_recdata = 1; +// delaysleep_count = 3; +// test21++; +// } if((PWR_ON_POSITION&gpio_state)) { PowerTask(); + test31++; } } @@ -397,6 +415,7 @@ Usart1ParseDataCallback = UsartParseDataHandler;//需改为默认为gps处理,UsartParseDataHandler为升级处理当调试时候改为 parameter_init_anchor();//g_com_map表初始化角色默认为基站 dev_id=g_com_map[DEV_ID];//这里不太对 + g_com_map[GROUP_ID]=9; group_id=g_com_map[GROUP_ID];//组ID // tag_frequency = 1000/g_com_map[COM_INTERVAL];//测距频率这个存的是测距时间 memcpy(&disoffset,&g_com_map[DIST_OFFSET],2); @@ -429,7 +448,7 @@ ip2 = (g_com_map[TCP_IP_2]>>12&0xf)*1000+(g_com_map[TCP_IP_2]>>8&0xf)*100+(g_com_map[TCP_IP_2]>>4&0xf)*10+(g_com_map[TCP_IP_2]&0xf); ip3 = (g_com_map[TCP_IP_3]>>12&0xf)*1000+(g_com_map[TCP_IP_3]>>8&0xf)*100+(g_com_map[TCP_IP_3]>>4&0xf)*10+(g_com_map[TCP_IP_3]&0xf); port = g_com_map[TCP_PORT]; - g_com_map[VERSION] = (1<<8)|0; + g_com_map[VERSION] = (1<<8)|3; LOG_INFO(TRACE_MODULE_APP,"设备ID: %x .\r\n",dev_id); LOG_INFO(TRACE_MODULE_APP,"固件版本:4G-GPS定位手环 V%d.%d. \r\n",g_com_map[VERSION]>>8,g_com_map[VERSION]&0xff); LOG_INFO(TRACE_MODULE_APP,"服务器地址: %d.%d.%d.%d:%d.\r\n",ip0,ip1,ip2,ip3,port); @@ -451,39 +470,54 @@ 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; -// while(read_5v_input_pca()) -// { -// nomove_count = 0; -// if(HIDO_TimerGetTick()-adctick>6000) //10分钟采样一次 电量 -// { -// chongman_time=chongman_time+6; -// 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>=1800) -// { -// powerled = GREEN; -// }else{ -// powerled = RED; -// } -// UART_CheckReceive(); -// delay_ms(100); -// Internet_Poll(); -// Set4LEDColor(0,0,0,powerled); -// } -// NVIC_SystemReset(); + 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; + if(HIDO_TimerGetTick()-adctick>6000) //10分钟采样一次 电量 + { + chongman_time=chongman_time+6; + 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>=1800) + { + powerled = GREEN; + }else{ + powerled = RED; + } + UART_CheckReceive(); + Internet_Poll(); + HIDO_TimerPoll(); + HIDO_ATLitePoll(); + TCPClient_Poll(); + if(flag_secondtask) + { + flag_secondtask = 0; + SecondTask(); + } + Set4LEDColor(0,0,0,powerled); + if(input5v_time) + { + if(!read_5v_input_pca()) + { + break; + } + } + } + NVIC_SystemReset(); input5vflag=1; } else @@ -519,6 +553,10 @@ if(ledonflag==1) { ledonflag=0; + uwbled=0; + rtkled=0; + led4g=0; + powerled=0; Set4LEDColor(LEDOFF,LEDOFF,LEDOFF,LEDOFF); } } @@ -540,7 +578,7 @@ int tt2; int test1,test3; uint32_t test4; - +extern uint8_t receive_flag; int main(void) { board_clock_run(); @@ -579,10 +617,10 @@ Internet_Init(); TCPClient_Init(); gpio_open(); - LED_output_init();//配置彩色灯引脚 - IIC2_Init(); + LED_output_init();//配置彩色灯引脚 + IIC2_Init(); Accelerometer_Init(); - PCA9555_init(); + PCA9555_init(); //AIR780E_Reset(); @@ -619,10 +657,14 @@ //board_4GUsart_detection_init(_4gUsart_handler); Uwb_init(); OpenUWB(); +// 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输入 while (1) { uwb_app_poll(); -// Air780eTask(); Internet_Poll(); HIDO_TimerPoll(); HIDO_ATLitePoll(); -- Gitblit v1.9.3