zhangbo
2025-05-13 1f4cdd2361ab73f24f104d608421124140f54c51
keil/include/main/main.c
@@ -140,8 +140,9 @@
             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);
//                  PCA9555_Set_One_Value_Config(MAIN_RI,0);//配置4G唤醒引脚为输入
//
////                  PCA9555_Set_One_Value_Output(MAIN_RI,1);
             boot_deinit();
            CloseUWB();
            PCA9555_Set_One_Value_Output(AIR780E_ENBALE,0);//关闭gps,4G 
@@ -177,16 +178,20 @@
            bat_percent = ((fVoltage_mv - 3300) /8);
        }
    }
            if(fVoltage_mv<3300)
            {
               //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");
            }else{
               //power_low_flag=0;
               //gps_air780_power_change(gps_power_state,1);//gps原样,开启4G
//               LOG_INFO(TRACE_MODULE_APP, "电池电压正常,4G,GPS,正常工作\r\n");
            }
      if(bat_percent>100)
         bat_percent=100;
     if(bat_percent<0)
         bat_percent=0;
//            if(fVoltage_mv<3300)
//            {
//               //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");
//            }else{
//               //power_low_flag=0;
//               //gps_air780_power_change(gps_power_state,1);//gps原样,开启4G
////               LOG_INFO(TRACE_MODULE_APP, "电池电压正常,4G,GPS,正常工作\r\n");
//            }
      PCA9555_Set_One_Value_Output(ADC_MINIUS,1);//拉高
}
extern uint8_t gps_uwb_flag,gps_need_data_flag;
@@ -206,6 +211,14 @@
      power_wakeup_enable((enum POWER_WAKEUP_SOURCE_T)PCA_INPUT_DETECT, POWER_WAKEUP_LEVEL_LOW);
      mcu_deep_sleep();
   }
}
void powerON_Task(void)
{
if(deep_sleep_falg==0)
{
PCA9555_Set_One_Value_Output(PWR_ENABLE,1);
}
}
void UserKeyTask(void)
{
@@ -309,15 +322,16 @@
uint8_t gps_ntripsend;
static void sleep_timer_callback(void *dev, uint32_t time)
{
// powerON_Task();
if(secondtask_count++%2==0)
    {   
        input5v_time=1;
        flag_secondtask = 1;
           #ifdef UWB_1_5HZ
           uwb_time_count++;
          #endif
           uwb_offtime_count++;
           if(uwb_offtime_count>30)
        #endif
            uwb_offtime_count++;
           if(uwb_offtime_count>60)
            {
             uwb_offtime_count=0;
             current_state = STATE_SLEEP;
@@ -433,7 +447,7 @@
      }
    g_com_map[MODBUS_MODE] = 0;
      log_4g_enable_flag=g_com_map[LOG_4G_ENABLE];
    g_com_map[VERSION] = (1<<8)|12;
    g_com_map[VERSION] = (1<<8)|16;
         
        
    LOG_INFO(TRACE_MODULE_APP,"设备ID: %x .\r\n",dev_id);
@@ -557,7 +571,8 @@
                }
                }
            }
            NVIC_SystemReset();
//            NVIC_SystemReset();
//                  PCA9555_Set_One_Value_Output(PWR_ENABLE,0);
            input5vflag=1;
      }
        else 
@@ -569,7 +584,13 @@
                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(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();
@@ -615,48 +636,51 @@
void upload_apppoll()
{   
   uint32_t elapsed_time_jibu;
#ifdef UWB_1_5HZ
    switch (current_state) 
         {
#ifdef UWB_1_5HZ
        case STATE_NORMAL:
            elapsed_time_jibu = uwb_time_count - state_start_time;
                switch(elapsed_time_jibu)
                  {
                     case UWB_OPEN_COUNT:
                            CloseUWB();
//                            uwbled = LEDOFF;
                          UWBSendUDPTask();
                          GPS_UPLOAD_FLAG=1;
                     break;
                     
                     case UWB_MEASUREMENT_INTERVAL:
                           taglist_num = 0;
                            OpenUWB();
//                            uwbled = WHITE;
                            CloseUWB();
                            Uwb_init();
                            OpenUWB();
                   state_start_time = uwb_time_count;   
                     
                     break;                  
                  }
            break;
#endif
        case STATE_SLEEP:
            elapsed_time_jibu = uwb_time_count - state_start_time;
                switch(elapsed_time_jibu)
                  {
                     case UWB_OPEN_COUNT:
                            CloseUWB();
                   UWBSendUDPTask();
                   UWBSendUDPTask();
                     break;
                     
                     case UWB_MEASUREMENT_INTERVAL_SLEEP:
                            OpenUWB();
                           taglist_num = 0;
                           CloseUWB();
                            Uwb_init();
                           OpenUWB();
                   state_start_time = uwb_time_count;                     
                     break;                  
                  }
            break;
         }   
#endif
}
uint8_t flag_4guart_needinit=0;
@@ -667,12 +691,17 @@
uint32_t test4;
extern uint8_t receive_flag;
int main(void)
{
 {
     __enable_irq();
    board_clock_run();
    boot_deinit();
    board_pins_config();
    gpio_open();
      IIC2_Init();
      Accelerometer_Init();
    PCA9555_init();
     board_debug_console_open_baud(TRACE_PORT_UART1,BAUD_115200);
    // Reset reason
    reset_cause_get();
    reset_cause_clear();
@@ -686,7 +715,7 @@
    }
    else
    {
        board_calibration_params_default();
      board_calibration_params_default();
    }
    calib_chip();
    wdt_close(WDT_ID0);
@@ -708,11 +737,11 @@
        TCPClient_Init_1();
    }
//    HTTPClient_Init();
    gpio_open();
    LED_output_init();//配置彩色灯引脚
    IIC2_Init();
    Accelerometer_Init();
    PCA9555_init();
    WT588E02B_Init();
    adc_open(&usr_adc_cfg);
    uart_receive(UART_ID1,m_EUART_DMA_RXBuf,EUART_RX_BUF_SIZE,uart_receive_callback);
    power_init();
@@ -742,8 +771,12 @@
    gps_prase_flag=1;//恢复gps解析
    uart1_change_from_debug_to_gps();//测试
    PCA9555_Set_One_Value_Output(MCU_A,0);//输出低电平切换为GPS
    #ifdef UWB_CG
    CloseUWB();
    #endif
    while (1)
    { 
        uwb_app_poll();
        Internet_Poll();
        HIDO_TimerPoll();