From 6f6d3bc73b0b59b67ec7c3acfe6cd966523741b3 Mon Sep 17 00:00:00 2001
From: yincheng.zhong <634916154@qq.com>
Date: 星期三, 24 四月 2024 10:04:12 +0800
Subject: [PATCH] V1.21 修改LED显示,增加秒延迟功能

---
 Src/main.c |  112 ++++++++++++++++++++++++++++++-------------------------
 1 files changed, 61 insertions(+), 51 deletions(-)

diff --git a/Src/main.c b/Src/main.c
index ce34482..dbdb8ad 100644
--- a/Src/main.c
+++ b/Src/main.c
@@ -125,7 +125,7 @@
 uint8_t anjian_flag;
 uint8_t  stationary_flag;
 uint16_t stationary_num;
-uint16_t recv_end_time;
+uint16_t recv_end_time,ledon_time;
 u16 GetLPTime(void)
 {
 	u16 count=HAL_LPTIM_ReadCounter(&hlptim1);
@@ -207,7 +207,12 @@
 extern uint8_t xie_flag;
 float motor_keeptime;
 void IdleTask(void)
-{
+{uint16_t current_lptime = GetLPTime();
+    if(current_lptime-ledon_time>100||current_lptime<ledon_time-500)
+    {
+      //  Set4LEDColor(0,0,0,0);
+         Set4LEDColor_Off();
+    }
 	if(HAL_GPIO_ReadPin(INPUT_5V_GPIO_Port,INPUT_5V_Pin))
 	{  state5v=1;
         LoraInit();
@@ -306,7 +311,7 @@
 	hardware_pici = STMFLASH_ReadHalfWord(FLASH_HARDWARE_VERSION_MAP+2);
 	hardware_type = STMFLASH_ReadHalfWord(FLASH_HARDWARE_VERSION_MAP+4);
 	//deca_sleep(1000);
-	g_com_map[VERSION] = (1<<8)|17;
+	g_com_map[VERSION] = (1<<8)|21;
 //    g_com_map[DEV_ID]=1158;
 //    #ifdef DEBUG_MODE
 //   // g_com_map[GROUP_ID]=21;
@@ -599,15 +604,17 @@
 extern uint8_t rec_secdelay;
 void Lora_Send_Poll(void)
 {
-    if(rec_secdelay>0)
-    {
-        rec_secdelay--;
-        return;
-    }
+    
     if(Lora_send_flag)
     { 
         debugnum++;
-        Lora_send_flag=0;    
+        Lora_send_flag=0; 
+        if(rec_secdelay>0)
+            {
+                loraled=YELLOW;
+                rec_secdelay--;
+                return;
+            }        
         loraled=BLUE;
         LoraReportPoll();
         flag_onesecond = 1;
@@ -618,19 +625,19 @@
 extern volatile uint8_t recv_end_flag; //一帧数据接收完成标志
 void Lpuart_rx_Poll(void)
 {
-if(recv_end_flag == 1)  //接收完成标志
-{
-    uint16_t i;
-    recv_end_time=0;
-    for(i=0;i<GPS_SIZE;i++)
-    {GPS_RecvFsm(GPS_GGAdate[i]);}
-//GPS_ParseGGA(GPS_GGAdate, rx_len);  
-memset(GPS_GGAdate,0,GPS_SIZE);
-rx_len = 0;//清除计数
-recv_end_flag = 0;//清除接收结束标志位
-fangzhijinrushuimian_flag=0;
-}
-HAL_UART_Receive_DMA(&hlpuart1,GPS_GGAdate,LPUART_SIZE);//重新打开DMA接收
+    if(recv_end_flag == 1)  //接收完成标志
+    {
+        uint16_t i;
+        recv_end_time=0;
+        for(i=0;i<GPS_SIZE;i++)
+        {GPS_RecvFsm(GPS_GGAdate[i]);}
+    //GPS_ParseGGA(GPS_GGAdate, rx_len);  
+        memset(GPS_GGAdate,0,GPS_SIZE);
+        rx_len = 0;//清除计数
+        recv_end_flag = 0;//清除接收结束标志位
+        fangzhijinrushuimian_flag=0;
+    }
+    HAL_UART_Receive_DMA(&hlpuart1,GPS_GGAdate,LPUART_SIZE);//重新打开DMA接收
 }
 /* USER CODE END 0 */
 
@@ -1291,38 +1298,41 @@
  if(chongqi_flag==0&&shengji_flag==0)
  {
     SystemClock_Config();
-Set4LEDColor(powerled,loraled,gpsled,uwbled);
-Bat_Percent_Poll();
+    Set4LEDColor(uwbled,gpsled,loraled,powerled); //代码有BUG需要执行2次,否则电源灯不亮
+    Set4LEDColor(uwbled,gpsled,loraled,powerled);
+    //Set4LEDColor(powerled,loraled,gpsled,uwbled);
+    ledon_time = GetLPTime();
+    Bat_Percent_Poll();
     if(state5v==0)
     {
-    if(yuyin_no_sleep_flag==0)
-    {
-    recv_end_time++;
-    if(recv_end_time>NOGPS_RESET_TIME)
-    {HAL_NVIC_SystemReset();}
+        if(yuyin_no_sleep_flag==0)
+        {
+            recv_end_time++;
+            if(recv_end_time>NOGPS_RESET_TIME)
+            {HAL_NVIC_SystemReset();}
+        }
+        Yuying_Poll();
+        Lora_send_flag=1;
+        if(nomove_count++>g_com_map[STATIONARY_TIME])
+        {
+            stationary_flag = 1;
+        } 
+        else 
+        {
+            stationary_flag = 0;
+        }
+        if(nomove_count>=g_com_map[NOMOVESLEEP_TIME]-1&&imu_enable)
+        {
+            gotosleep_flag=1;
+        } else {
+            gotosleep_flag=0;
+        }
     }
-    Yuying_Poll();
-    Lora_send_flag=1;
-    if(nomove_count++>g_com_map[STATIONARY_TIME])
-    {
-        stationary_flag = 1;
-    } 
-    else 
-    {
-    stationary_flag = 0;
-    }
-    if(nomove_count>=g_com_map[NOMOVESLEEP_TIME]-1&&imu_enable)
-    {
-        gotosleep_flag=1;
-    } else {
-        gotosleep_flag=0;
-    }
-    }
-    powerled=LEDOFF;
-    loraled=LEDOFF;
-    gpsled=LEDOFF;
-    uwbled=LEDOFF;
-Set4LEDColor_Off();
+//    powerled=LEDOFF;
+//    loraled=LEDOFF;
+//    gpsled=LEDOFF;
+//    uwbled=LEDOFF;
+//    Set4LEDColor_Off();
  }
  HAL_IWDG_Refresh(&hiwdg);
 }

--
Gitblit v1.9.3