From 30b9abaf03adba5c4ced5d9663d90e2dbbc795e9 Mon Sep 17 00:00:00 2001
From: yincheng.zhong <634916154@qq.com>
Date: 星期五, 06 十二月 2024 16:33:51 +0800
Subject: [PATCH] V2.20 解决低电量黄灯问题

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

diff --git a/Src/main.c b/Src/main.c
index fc4d032..dab264c 100644
--- a/Src/main.c
+++ b/Src/main.c
@@ -103,7 +103,7 @@
 void LedTask(void);
 uint32_t dev_id;
 uint16_t heartbeat_timer,poll_timer,sync_timer;
-uint8_t aRxBuffer[1],group_id;
+uint8_t aRxBuffer[1],group_id = 1;
 uint8_t bat_percent=0,g_start_send_flag;
 uint16_t tyncpoll_time,lpsettime;
 uint16_t slottime,max_slotpos;
@@ -154,14 +154,30 @@
     GPIO_InitStruct.Pull = GPIO_NOPULL;
     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
 }
+
+typedef enum {	unused,
+                none1,
+                STBY_RC,
+                STBY_XOSC,
+                FS,
+                RX,
+                TX
+             } LoraChipModeEnum;
 uint16_t hardware_version,hardware_pici,hardware_type;
 uint8_t state5v = 1;
 extern uint8_t du_flag;
 extern uint8_t xie_flag;
+RadioStatus_t radiostatus;
 uint16_t motor_keeptime;
 void IdleTask(void)
 {
-
+//    radiostatus = SX126xGetStatus();
+//    if(radiostatus.Fields.ChipMode!=RX&&radiostatus.Fields.ChipMode!=TX)
+//        {
+//            Radio.Standby();
+//            SwitchLoraSettings(UWB_CHANNEL_FRQ+group_id,UWB_CHANNEL_SF,0);
+//            Radio.Rx(0);
+//        }
     if(HAL_GPIO_ReadPin(INPUT_5V_GPIO_Port,INPUT_5V_Pin))
     {
         UART_CheckReceive();
@@ -217,9 +233,10 @@
     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)|15;
+    g_com_map[VERSION] = (2<<8)|20;
+//     g_com_map[VERSION] = (3<<8)|2;
 //    g_com_map[DEV_ID]=1158;
-    g_com_map[GROUP_ID]=0;
+//    g_com_map[GROUP_ID]=1;
 //    g_com_map[COM_INTERVAL] = 1000;
     if(g_com_map[COM_INTERVAL]<1000)
     {
@@ -232,6 +249,7 @@
     module_power = g_com_map[POWER];
 //    g_com_map[IMU_ENABLE] = 0;
     imu_enable=g_com_map[IMU_ENABLE];
+    
     motor_enable=g_com_map[MOTOR_ENABLE];
 
     group_id=g_com_map[GROUP_ID];
@@ -322,6 +340,7 @@
     HAL_ADC_DeInit(&hadc);
     HAL_ADCEx_DisableVREFINT();
 }
+uint8_t anjian_num;
 uint16_t irq_num;
 void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
 {
@@ -335,6 +354,18 @@
     {
         SystemClock_Config();
         anjian_flag=1;
+//        anjian_num++;
+//        if(anjian_num==2)
+//        {                        
+//            g_com_map[LORA_SEND_INDEX] = !g_com_map[LORA_SEND_INDEX];
+//            save_com_map_to_flash();
+//            LED_TB_ON;
+//            LED_TR_ON;
+//            LED2_TB_ON;
+//            LED2_TR_ON;
+//            delay_ms(100);
+//            SCB->AIRCR = 0X05FA0000|(unsigned int)0x04; //软复位回到bootloader
+//        }
     }
     if(GPIO_Pin == GPIO_PIN_0)//加速度
     {
@@ -416,6 +447,7 @@
 }
 
 uint8_t usart5_state,flag_onesecond;
+uint8_t beep_flag;
 void BeepTask(void)
 {
     if(1)//g_com_map[MOTOR_ENABLE])
@@ -424,8 +456,10 @@
         {
             motor_keeptime--;
             HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_4);
+            beep_flag=1;
         }else{
             HAL_TIM_PWM_Stop(&htim2, TIM_CHANNEL_4);
+            beep_flag=0;
         }       
     }
 }
@@ -437,6 +471,7 @@
         BeepTask();
     }
 }
+
 /* USER CODE END 0 */
 
 /**
@@ -519,11 +554,19 @@
 //    HAL_IWDG_Refresh(&hiwdg);
         OneSecondTask();
         IdleTask();
+//        if(g_com_map[LORA_SEND_INDEX])
+//        {
+       
         Lora_Send_Poll();
+        
+//        }
         LoraUp_Poll();
 #ifndef DEBUG_MODE
+        if(beep_flag==0)
+        {
         if(!HAL_GPIO_ReadPin(INPUT_5V_GPIO_Port,INPUT_5V_Pin)&&motor_keeptime==0)
             HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON, PWR_STOPENTRY_WFI);
+        }
 #endif
 
     }
@@ -1035,11 +1078,14 @@
 //    uint8_t pinlv;
     SystemClock_Config();
     HAL_IWDG_Refresh(&hiwdg);
+    anjian_num=0;
+//    if(++g_com_map[GROUP_ID]>2)
+//        g_com_map[GROUP_ID] = 0;
     if(active_flag==0)  //未激活状态
     {
         if(!GET_USERKEY)
         {
-            LED_TB_ON;
+           
             key_keeptime+=1;
             if(key_keeptime>3)
             {

--
Gitblit v1.9.3