chen
2025-02-28 bb14f348f2eb7527ac33e4f12e17bd726c42859a
keil/include/main/main.c
@@ -76,7 +76,22 @@
#define WARING_LIMIT_TIME 10
#define UPDATE_TIME 10
#define GREEN 1
#define UP_TOWARD 2
#define DOWN_TOWARD 3
#define RED 4
#define BRT 5
#define SAVE 6
#define STEP 7
#define SCAN 8
#define WIN 9
#define TXP 10
#define SFT_D 11
#define O 12
#define VOX 13
#define SQL 14
#define ROGER 15
#define KEY 16
extern uint8_t mUsartReceivePack[100];
extern uint8_t mUsart2ReceivePack[150];
extern uint8_t state5V_prase_flag,gps_prase_flag;
@@ -257,53 +272,54 @@
}
uint8_t link_error_time;
void SecondTask(void)
{static uint8_t second_count;
{
   static uint8_t second_count;
    if(second_count++>60)
    {
        second_count = 0;
        MinuteTask();
    }
      if(!power_low_flag)
      {Gps_change();
      MotorPoll();
      }else{
      gps_power_state=0;//关闭GPS
      update_led_power_state();
      //初始化GPS计数数据
      gps_need_data_flag=1;
      gps_wait_count2=0;
      gps_wait_count=0;
      }
//      if(!power_low_flag)
//      {Gps_change();
//      MotorPoll();
//      }else{
//      gps_power_state=0;//关闭GPS
//      update_led_power_state();
//      //初始化GPS计数数据
//      gps_need_data_flag=1;
//      gps_wait_count2=0;
//      gps_wait_count=0;
//      }
      
    //UWB状态检测
if(!power_low_flag)//低供电下不需要检测重连
   {
    if(IfTCPConnected())
    {
//            link_error_time=0;
        TCP_reconnect_timer =0;
        flag_TCP_reconnectting = 0;
    } else {
        if(TCP_reconnect_timer<30)//如果TCP没有连接,每隔10分钟尝试连接30秒
        {
            flag_TCP_reconnectting = 1;
        } else {
//    //UWB状态检测
//if(!power_low_flag)//低供电下不需要检测重连
//   {
//    if(IfTCPConnected())
//    {
////            link_error_time=0;
//        TCP_reconnect_timer =0;
               //flag_TCP_reconnectting = 0;
            sys_reset(4);//重连不上就复位
        }
        if(TCP_reconnect_timer++>600)
        {
            TCP_reconnect_timer = 0;
        }
//    } else {
//        if(TCP_reconnect_timer<30)//如果TCP没有连接,每隔10分钟尝试连接30秒
//        {
//            flag_TCP_reconnectting = 1;
//        } else {
//               //flag_TCP_reconnectting = 0;
//            sys_reset(4);//重连不上就复位
//        }
//        if(TCP_reconnect_timer++>600)
//        {
//            TCP_reconnect_timer = 0;
//        }
    }
   }
    HIDO_TimerTick();
      if(nomove_count<=g_com_map[NOMOVESLEEP_TIME])//防止溢出
    nomove_count++;
      else{
      nomove_count=g_com_map[NOMOVESLEEP_TIME]+1;
      }
//    }
//   }
//    HIDO_TimerTick();
//      if(nomove_count<=g_com_map[NOMOVESLEEP_TIME])//防止溢出
//    nomove_count++;
//      else{
//      nomove_count=g_com_map[NOMOVESLEEP_TIME]+1;
//      }
}
uint8_t tt=1;
uint8_t flag_sleeptimer,flag_secondtask,secondtask_count,log_4g_enable_flag;
@@ -384,7 +400,203 @@
}
uint8_t key_num;
 void board_key_scan(uint8_t *key)
 {
    uint8_t key_down_flag=0;
   //第一行拉低做检测
    gpio_pin_clr(CN1);
    gpio_pin_set(CN2);
    gpio_pin_set(CN3);
    gpio_pin_set(CN4);
    if(!gpio_pin_get_val(COM1)||!gpio_pin_get_val(COM2)||!gpio_pin_get_val(COM3)||!gpio_pin_get_val(COM4))
    {
    if(!gpio_pin_get_val(COM1))
    {
    key_down_flag=1;
    *key=GREEN;
       while(!gpio_pin_get_val(COM1));
    }else if(!gpio_pin_get_val(COM2))
    {
    key_down_flag=1;
    *key=UP_TOWARD;
       while(!gpio_pin_get_val(COM2));
    }else if (!gpio_pin_get_val(COM3))
    {
    key_down_flag=1;
    *key=DOWN_TOWARD;
       while(!gpio_pin_get_val(COM3));
    }else if (!gpio_pin_get_val(COM4))
    {
    key_down_flag=1;
    *key=RED;
      while(!gpio_pin_get_val(COM4));
    }else{
    key_down_flag=0;
    gpio_pin_set(CN1);
    gpio_pin_set(CN2);
    gpio_pin_set(CN3);
    gpio_pin_set(CN4);
    }
       //第二行拉低做检测
    gpio_pin_set(CN1);
    gpio_pin_clr(CN2);
    gpio_pin_set(CN3);
    gpio_pin_set(CN4);
        if(!gpio_pin_get_val(COM1))
    {
    key_down_flag=1;
    *key=BRT;
       while(!gpio_pin_get_val(COM1));
    }else if(!gpio_pin_get_val(COM2))
    {
    key_down_flag=1;
    *key=SAVE;
       while(!gpio_pin_get_val(COM2));
    }else if (!gpio_pin_get_val(COM3))
    {
    key_down_flag=1;
    *key=STEP;
       while(!gpio_pin_get_val(COM3));
    }else if (!gpio_pin_get_val(COM4))
    {
    key_down_flag=1;
    *key=SCAN;
      while(!gpio_pin_get_val(COM4));
    }else{
    key_down_flag=0;
    gpio_pin_set(CN1);
    gpio_pin_set(CN2);
    gpio_pin_set(CN3);
    gpio_pin_set(CN4);
    }
           //第三行拉低做检测
    gpio_pin_set(CN1);
    gpio_pin_set(CN2);
    gpio_pin_clr(CN3);
    gpio_pin_set(CN4);
    if(!gpio_pin_get_val(COM1))
    {
    key_down_flag=1;
    *key=WIN;
       while(!gpio_pin_get_val(COM1));
    }else if(!gpio_pin_get_val(COM2))
    {
    key_down_flag=1;
    *key=TXP;
       while(!gpio_pin_get_val(COM2));
    }else if (!gpio_pin_get_val(COM3))
    {
    key_down_flag=1;
    *key=SFT_D;
       while(!gpio_pin_get_val(COM3));
    }else if (!gpio_pin_get_val(COM4))
    {
    key_down_flag=1;
    *key=O;
      while(!gpio_pin_get_val(COM4));
    }else{
    key_down_flag=0;
    gpio_pin_set(CN1);
    gpio_pin_set(CN2);
    gpio_pin_set(CN3);
    gpio_pin_set(CN4);
    }
       //第四行拉低做检测
    gpio_pin_set(CN1);
    gpio_pin_set(CN2);
    gpio_pin_set(CN3);
    gpio_pin_clr(CN4);
    if(!gpio_pin_get_val(COM1))
    {
    key_down_flag=1;
    *key=VOX;
       while(!gpio_pin_get_val(COM1));
    }else if(!gpio_pin_get_val(COM2))
    {
    key_down_flag=1;
    *key=SQL;
       while(!gpio_pin_get_val(COM2));
    }else if (!gpio_pin_get_val(COM3))
    {
    key_down_flag=1;
    *key=ROGER;
       while(!gpio_pin_get_val(COM3));
    }else if (!gpio_pin_get_val(COM4))
    {
    key_down_flag=1;
    *key=KEY;
      while(!gpio_pin_get_val(COM4));
    }else{
    key_down_flag=0;
    gpio_pin_set(CN1);
    gpio_pin_set(CN2);
    gpio_pin_set(CN3);
    gpio_pin_set(CN4);
    }
    }
 }
void board_key_message(uint8_t *key)
{
   switch(*key){
      case 0:
      break;
      case 1:
      break;
      case 2:
      break;
      case 3:
      break;
      case 4:
      break;
      case 5:
      break;
      case 6:
      break;
      case 7:
      break;
      case 8:
      break;
      case 9:
      break;
      case 10:
      break;
      case 11:
      break;
      case 12:
      break;
      case 13:
      break;
      case 14:
      break;
      case 15:
      break;
      case 16:
      break;
}
}
void IdleTask(void)
{
//    if(gpio_pin_get_val(INPUT_5V_Pin))
@@ -413,6 +625,8 @@
//            //UartDeinit();
//        }
//    }
      board_key_scan(&key_num);
      board_key_message(&key_num);
      UART_CheckReceive();
}
void boot_deinit(void)
@@ -446,130 +660,7 @@
        .int_en = true,
        .callback = app_wdt_callback,
    };
 void board_key_scan(uint8_t *key)
 {
    uint8_t key_down_flag=0;
   //第一行拉低做检测
    gpio_pin_clr(CN1);
    gpio_pin_set(CN2);
    gpio_pin_set(CN3);
    gpio_pin_set(CN4);
    if(!gpio_pin_get_val(COM1)||!gpio_pin_get_val(COM2)||!gpio_pin_get_val(COM3)||!gpio_pin_get_val(COM4))
    {
    if(!gpio_pin_get_val(COM1))
    {
    key_down_flag=1;
    *key=1;
       while(!gpio_pin_get_val(COM1));
    }else if(!gpio_pin_get_val(COM2))
    {
    key_down_flag=1;
    *key=2;
       while(!gpio_pin_get_val(COM2));
    }else if (!gpio_pin_get_val(COM3))
    {
    key_down_flag=1;
    *key=3;
       while(!gpio_pin_get_val(COM3));
    }else if (!gpio_pin_get_val(COM4))
    {
    key_down_flag=1;
    *key=4;
      while(!gpio_pin_get_val(COM4));
    }else{
    key_down_flag=0;
       
    }
       //第二行拉低做检测
    gpio_pin_set(CN1);
    gpio_pin_clr(CN2);
    gpio_pin_set(CN3);
    gpio_pin_set(CN4);
        if(!gpio_pin_get_val(COM1))
    {
    key_down_flag=1;
    *key=5;
       while(!gpio_pin_get_val(COM1));
    }else if(!gpio_pin_get_val(COM2))
    {
    key_down_flag=1;
    *key=6;
       while(!gpio_pin_get_val(COM2));
    }else if (!gpio_pin_get_val(COM3))
    {
    key_down_flag=1;
    *key=7;
       while(!gpio_pin_get_val(COM3));
    }else if (!gpio_pin_get_val(COM4))
    {
    key_down_flag=1;
    *key=8;
      while(!gpio_pin_get_val(COM4));
    }else{
    key_down_flag=0;
    }
           //第三行拉低做检测
    gpio_pin_set(CN1);
    gpio_pin_set(CN2);
    gpio_pin_clr(CN3);
    gpio_pin_set(CN4);
    if(!gpio_pin_get_val(COM1))
    {
    key_down_flag=1;
    *key=9;
       while(!gpio_pin_get_val(COM1));
    }else if(!gpio_pin_get_val(COM2))
    {
    key_down_flag=1;
    *key=10;
       while(!gpio_pin_get_val(COM2));
    }else if (!gpio_pin_get_val(COM3))
    {
    key_down_flag=1;
    *key=11;
       while(!gpio_pin_get_val(COM3));
    }else if (!gpio_pin_get_val(COM4))
    {
    key_down_flag=1;
    *key=12;
      while(!gpio_pin_get_val(COM4));
    }else{
    key_down_flag=0;
    }
       //第四行拉低做检测
    gpio_pin_set(CN1);
    gpio_pin_set(CN2);
    gpio_pin_set(CN3);
    gpio_pin_clr(CN4);
    if(!gpio_pin_get_val(COM1))
    {
    key_down_flag=1;
    *key=13;
       while(!gpio_pin_get_val(COM1));
    }else if(!gpio_pin_get_val(COM2))
    {
    key_down_flag=1;
    *key=14;
       while(!gpio_pin_get_val(COM2));
    }else if (!gpio_pin_get_val(COM3))
    {
    key_down_flag=1;
    *key=15;
       while(!gpio_pin_get_val(COM3));
    }else if (!gpio_pin_get_val(COM4))
    {
    key_down_flag=1;
    *key=16;
      while(!gpio_pin_get_val(COM4));
    }else{
    key_down_flag=0;
    }
    }
 }
int main(void)
{
    board_clock_run();
@@ -609,7 +700,6 @@
//    adc_open(&usr_adc_cfg);
      board_gpio_init();
      key_board_init();
//    IIC2_Init();
//    Accelerometer_Init();
//    io_pin_mux_set(SCL_PIN, IO_FUNC0);//测试测距波形
@@ -636,6 +726,7 @@
      
    while (1)
    {
//         if(!power_low_flag)//确认是否休眠下才开启功能
//         {
//        if(flag_TCP_reconnectting||IfTCPConnected())