From 8e20afae32b9e4115caeea49a470016f71661555 Mon Sep 17 00:00:00 2001
From: WXK <287788329@qq.com>
Date: 星期四, 09 一月 2025 09:25:33 +0800
Subject: [PATCH] 目前调试完毕  1s上发一次  适配最新板子 看门狗跟静止休眠能同时用,去掉了低功耗超链接模式目前

---
 Core/Src/main.c |  502 ++++++++++++++++++++++++++-----------------------------
 1 files changed, 235 insertions(+), 267 deletions(-)

diff --git a/Core/Src/main.c b/Core/Src/main.c
index 24bbaef..505c219 100644
--- a/Core/Src/main.c
+++ b/Core/Src/main.c
@@ -67,16 +67,20 @@
 
 LPTIM_HandleTypeDef hlptim1;
 
+UART_HandleTypeDef hlpuart1;
+UART_HandleTypeDef huart1;
+UART_HandleTypeDef huart2;
+UART_HandleTypeDef huart5;
+DMA_HandleTypeDef hdma_lpuart1_rx;
+DMA_HandleTypeDef hdma_lpuart1_tx;
+DMA_HandleTypeDef hdma_usart2_rx;
+DMA_HandleTypeDef hdma_usart5_rx;
+
 RTC_HandleTypeDef hrtc;
 
 SPI_HandleTypeDef hspi1;
 
 TIM_HandleTypeDef htim3;
-
-UART_HandleTypeDef huart1;
-UART_HandleTypeDef huart2;
-UART_HandleTypeDef huart5;
-DMA_HandleTypeDef hdma_usart5_rx;
 
 /* USER CODE BEGIN PV */
 
@@ -95,6 +99,7 @@
 static void MX_USART1_UART_Init(void);
 static void MX_TIM3_Init(void);
 static void MX_IWDG_Init(void);
+static void MX_LPUART1_UART_Init(void);
 /* USER CODE BEGIN PFP */
 
 /* USER CODE END PFP */
@@ -121,14 +126,59 @@
 uint16_t nomove_count;
 uint16_t debug1,debug2,debug3,debug4;
 extern uint8_t delaysleep_count;
+uint8_t stop_flag;
+void mcu_sleep(void)
+{
+    GPIO_InitTypeDef GPIO_InitStruct = { 0 };
+//    LIS3DH_Data_Init();
+//        while(1)
+//    {}
+//        HAL_NVIC_SystemReset();
+//    __HAL_FLASH_PREFETCH_BUFFER_DISABLE();
+    GPS_PowerOff();
+//    HAL_GPIO_WritePin(GPIOA,GPIO_PIN_15, GPIO_PIN_RESET);
+//    HAL_GPIO_WritePin(GPIOB,GPIO_PIN_2|GPIO_PIN_6, GPIO_PIN_RESET);
+    HAL_SuspendTick();
+    Set4LEDColor(LEDOFF,LEDOFF,LEDOFF,LEDOFF); 
+
+    HAL_TIM_Base_DeInit(&htim3); 
+    HAL_TIM_Base_Stop_IT(&htim3);
+//    HAL_TIM_Base_DeInit(&hlptim1); 
+//    HAL_LPTIM_DeInit(&hlptim1);
+//    HAL_LPTIM_TimeOut_Stop_IT(&hlptim1);
+    HAL_SPI_DeInit(&hspi1);
+    HAL_UART_DeInit(&huart1);
+    HAL_UART_DeInit(&huart2);
+    HAL_UART_DeInit(&hlpuart1);
+    //    HAL_UART_DeInit(&huart6);
+    __HAL_RCC_DMA1_CLK_DISABLE();
+    //     __HAL_RCC_DMA2_CLK_DISABLE();
+
+    GPIO_InitStruct.Pin = GPIO_PIN_All;
+    GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
+    GPIO_InitStruct.Pull = GPIO_NOPULL;
+    //
+    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
+    HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
+
+//    GPIO_InitStruct.Pin = GPIO_PIN_All&(~GPIO_PIN_8)&(~GPIO_PIN_0);
+//    GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
+//    GPIO_InitStruct.Pull = GPIO_NOPULL;
+//    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
+    stop_flag=1;
+    HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON,PWR_STOPENTRY_WFI);
+//    while(1)
+//    {}
+//    HAL_ResumeTick();
+//    nomove_count = 0;
+//    HAL_NVIC_SystemReset();
+}
 void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
 {
-    if(GPIO_Pin == RADIO_DIO1_Pin)
+    if(GPIO_Pin == GPIO_PIN_12)
     {
 //        SystemClock_Config();
-//        irq_num++;
-//        RadioIrqProcess();
-        debug1++;
+        PowerDownDetect();
     }
     if(GPIO_Pin == GPIO_PIN_9)
     {
@@ -202,7 +252,6 @@
   /* USER CODE END SysInit */
 
   /* Initialize all configured peripherals */
-//  MX_IWDG_Init();
   MX_GPIO_Init();
   MX_DMA_Init();
   MX_RTC_Init();
@@ -213,21 +262,23 @@
   MX_LPTIM1_Init();
   MX_USART1_UART_Init();
   MX_TIM3_Init();
+  MX_IWDG_Init();
+  MX_LPUART1_UART_Init();
   /* USER CODE BEGIN 2 */
 //   __disable_irq();
   Uart_Register(UART_ID_DBG, &huart1);
-  Uart_Register(UART_ID_4G, &huart5);
-  Uart_Register(UART_ID_GPS, &huart2);
+  Uart_Register(UART_ID_4G, &huart2);
+  Uart_Register(UART_ID_GPS, &hlpuart1);
   
   SPI_Register(SPI_ID_FLASH, &hspi1);
   
   AIR780EDriver_PinRegister(AIR780E_PIN_3V8_EN, GPIOB, GPIO_PIN_10);
-  AIR780EDriver_PinRegister(AIR780E_PIN_PWRKEY, GPIOB, GPIO_PIN_0);
-  AIR780EDriver_PinRegister(AIR780E_PIN_RI, GPIOC, GPIO_PIN_13);
-  GPS_PinRegister(GPS_PIN_REST, GPIOC, GPIO_PIN_4);
+//  AIR780EDriver_PinRegister(AIR780E_PIN_PWRKEY, GPIOB, GPIO_PIN_0);
+//  AIR780EDriver_PinRegister(AIR780E_PIN_RI, GPIOC, GPIO_PIN_13);
+//  GPS_PinRegister(GPS_PIN_REST, GPIOC, GPIO_PIN_4);
   SPIFlash_PinRegister(SPI_FLASH_ID_0, SPI_FLASH_PIN_CS, GPIOB, GPIO_PIN_5);
   
-  HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_SET);//开4g电源
+//  HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_SET);//开4g电源
   
   SPIFlash_Init(SPI_FLASH_ID_0);
   DBG_Init();
@@ -260,14 +311,15 @@
 //      Uart_ReConfigBaudRate(UART_ID_4G,115200);
 //    HAL_UART_Transmit(&huart5, str,17,1000);
 //    Uart_ReConfigBaudRate(UART_ID_4G,9600);
-        GPS_PowerOff();
-        HAL_UART_DeInit(&huart2);
-        GPIO_InitTypeDef GPIO_InitStruct = {0};//
-        GPIO_InitStruct.Pin = GPIO_PIN_4;
-        GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_OD;
-        GPIO_InitStruct.Pull = GPIO_NOPULL;
-        GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
-        HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
+  
+//        GPS_PowerOff();
+//        HAL_UART_DeInit(&huart2);
+//        GPIO_InitTypeDef GPIO_InitStruct = {0};//
+//        GPIO_InitStruct.Pin = GPIO_PIN_4;
+//        GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_OD;
+//        GPIO_InitStruct.Pull = GPIO_NOPULL;
+//        GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+//        HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
 
 //        HAL_GPIO_WritePin(GPIOB, GPIO_PIN_10, GPIO_PIN_RESET);    
 //        while(1)
@@ -342,9 +394,11 @@
     Error_Handler();
   }
   PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_USART1|RCC_PERIPHCLK_USART2
-                              |RCC_PERIPHCLK_RTC|RCC_PERIPHCLK_LPTIM1;
+                              |RCC_PERIPHCLK_LPUART1|RCC_PERIPHCLK_RTC
+                              |RCC_PERIPHCLK_LPTIM1;
   PeriphClkInit.Usart1ClockSelection = RCC_USART1CLKSOURCE_PCLK2;
   PeriphClkInit.Usart2ClockSelection = RCC_USART2CLKSOURCE_PCLK1;
+  PeriphClkInit.Lpuart1ClockSelection = RCC_LPUART1CLKSOURCE_PCLK1;
   PeriphClkInit.RTCClockSelection = RCC_RTCCLKSOURCE_LSI;
   PeriphClkInit.LptimClockSelection = RCC_LPTIM1CLKSOURCE_LSE;
 
@@ -468,6 +522,145 @@
   /* USER CODE BEGIN LPTIM1_Init 2 */
 
   /* USER CODE END LPTIM1_Init 2 */
+
+}
+
+/**
+  * @brief LPUART1 Initialization Function
+  * @param None
+  * @retval None
+  */
+static void MX_LPUART1_UART_Init(void)
+{
+
+  /* USER CODE BEGIN LPUART1_Init 0 */
+
+  /* USER CODE END LPUART1_Init 0 */
+
+  /* USER CODE BEGIN LPUART1_Init 1 */
+
+  /* USER CODE END LPUART1_Init 1 */
+  hlpuart1.Instance = LPUART1;
+  hlpuart1.Init.BaudRate = 115200;
+  hlpuart1.Init.WordLength = UART_WORDLENGTH_8B;
+  hlpuart1.Init.StopBits = UART_STOPBITS_1;
+  hlpuart1.Init.Parity = UART_PARITY_NONE;
+  hlpuart1.Init.Mode = UART_MODE_TX_RX;
+  hlpuart1.Init.HwFlowCtl = UART_HWCONTROL_NONE;
+  hlpuart1.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;
+  hlpuart1.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;
+  if (HAL_UART_Init(&hlpuart1) != HAL_OK)
+  {
+    Error_Handler();
+  }
+  /* USER CODE BEGIN LPUART1_Init 2 */
+
+  /* USER CODE END LPUART1_Init 2 */
+
+}
+
+/**
+  * @brief USART1 Initialization Function
+  * @param None
+  * @retval None
+  */
+static void MX_USART1_UART_Init(void)
+{
+
+  /* USER CODE BEGIN USART1_Init 0 */
+
+  /* USER CODE END USART1_Init 0 */
+
+  /* USER CODE BEGIN USART1_Init 1 */
+
+  /* USER CODE END USART1_Init 1 */
+  huart1.Instance = USART1;
+  huart1.Init.BaudRate = 115200;
+  huart1.Init.WordLength = UART_WORDLENGTH_8B;
+  huart1.Init.StopBits = UART_STOPBITS_1;
+  huart1.Init.Parity = UART_PARITY_NONE;
+  huart1.Init.Mode = UART_MODE_TX_RX;
+  huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE;
+  huart1.Init.OverSampling = UART_OVERSAMPLING_16;
+  huart1.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;
+  huart1.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;
+  if (HAL_UART_Init(&huart1) != HAL_OK)
+  {
+    Error_Handler();
+  }
+  /* USER CODE BEGIN USART1_Init 2 */
+
+  /* USER CODE END USART1_Init 2 */
+
+}
+
+/**
+  * @brief USART2 Initialization Function
+  * @param None
+  * @retval None
+  */
+static void MX_USART2_UART_Init(void)
+{
+
+  /* USER CODE BEGIN USART2_Init 0 */
+
+  /* USER CODE END USART2_Init 0 */
+
+  /* USER CODE BEGIN USART2_Init 1 */
+
+  /* USER CODE END USART2_Init 1 */
+  huart2.Instance = USART2;
+  huart2.Init.BaudRate = 115200;
+  huart2.Init.WordLength = UART_WORDLENGTH_8B;
+  huart2.Init.StopBits = UART_STOPBITS_1;
+  huart2.Init.Parity = UART_PARITY_NONE;
+  huart2.Init.Mode = UART_MODE_TX_RX;
+  huart2.Init.HwFlowCtl = UART_HWCONTROL_NONE;
+  huart2.Init.OverSampling = UART_OVERSAMPLING_16;
+  huart2.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;
+  huart2.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;
+  if (HAL_UART_Init(&huart2) != HAL_OK)
+  {
+    Error_Handler();
+  }
+  /* USER CODE BEGIN USART2_Init 2 */
+
+  /* USER CODE END USART2_Init 2 */
+
+}
+
+/**
+  * @brief USART5 Initialization Function
+  * @param None
+  * @retval None
+  */
+static void MX_USART5_UART_Init(void)
+{
+
+  /* USER CODE BEGIN USART5_Init 0 */
+
+  /* USER CODE END USART5_Init 0 */
+
+  /* USER CODE BEGIN USART5_Init 1 */
+
+  /* USER CODE END USART5_Init 1 */
+  huart5.Instance = USART5;
+  huart5.Init.BaudRate = 115200;
+  huart5.Init.WordLength = UART_WORDLENGTH_8B;
+  huart5.Init.StopBits = UART_STOPBITS_1;
+  huart5.Init.Parity = UART_PARITY_NONE;
+  huart5.Init.Mode = UART_MODE_TX_RX;
+  huart5.Init.HwFlowCtl = UART_HWCONTROL_NONE;
+  huart5.Init.OverSampling = UART_OVERSAMPLING_16;
+  huart5.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;
+  huart5.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;
+  if (HAL_UART_Init(&huart5) != HAL_OK)
+  {
+    Error_Handler();
+  }
+  /* USER CODE BEGIN USART5_Init 2 */
+
+  /* USER CODE END USART5_Init 2 */
 
 }
 
@@ -599,111 +792,6 @@
 }
 
 /**
-  * @brief USART1 Initialization Function
-  * @param None
-  * @retval None
-  */
-static void MX_USART1_UART_Init(void)
-{
-
-  /* USER CODE BEGIN USART1_Init 0 */
-
-  /* USER CODE END USART1_Init 0 */
-
-  /* USER CODE BEGIN USART1_Init 1 */
-
-  /* USER CODE END USART1_Init 1 */
-  huart1.Instance = USART1;
-  huart1.Init.BaudRate = 115200;
-  huart1.Init.WordLength = UART_WORDLENGTH_8B;
-  huart1.Init.StopBits = UART_STOPBITS_1;
-  huart1.Init.Parity = UART_PARITY_NONE;
-  huart1.Init.Mode = UART_MODE_TX_RX;
-  huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE;
-  huart1.Init.OverSampling = UART_OVERSAMPLING_16;
-  huart1.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;
-  huart1.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;
-  if (HAL_UART_Init(&huart1) != HAL_OK)
-  {
-    Error_Handler();
-  }
-  /* USER CODE BEGIN USART1_Init 2 */
-
-  /* USER CODE END USART1_Init 2 */
-
-}
-
-/**
-  * @brief USART2 Initialization Function
-  * @param None
-  * @retval None
-  */
-static void MX_USART2_UART_Init(void)
-{
-
-  /* USER CODE BEGIN USART2_Init 0 */
-
-  /* USER CODE END USART2_Init 0 */
-
-  /* USER CODE BEGIN USART2_Init 1 */
-
-  /* USER CODE END USART2_Init 1 */
-  huart2.Instance = USART2;
-  huart2.Init.BaudRate = 9600;
-  huart2.Init.WordLength = UART_WORDLENGTH_8B;
-  huart2.Init.StopBits = UART_STOPBITS_1;
-  huart2.Init.Parity = UART_PARITY_NONE;
-  huart2.Init.Mode = UART_MODE_TX_RX;
-  huart2.Init.HwFlowCtl = UART_HWCONTROL_NONE;
-  huart2.Init.OverSampling = UART_OVERSAMPLING_16;
-  huart2.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;
-  huart2.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;
-  if (HAL_UART_Init(&huart2) != HAL_OK)
-  {
-    Error_Handler();
-  }
-  /* USER CODE BEGIN USART2_Init 2 */
-
-  /* USER CODE END USART2_Init 2 */
-
-}
-
-/**
-  * @brief USART5 Initialization Function
-  * @param None
-  * @retval None
-  */
-static void MX_USART5_UART_Init(void)
-{
-
-  /* USER CODE BEGIN USART5_Init 0 */
-
-  /* USER CODE END USART5_Init 0 */
-
-  /* USER CODE BEGIN USART5_Init 1 */
-
-  /* USER CODE END USART5_Init 1 */
-  huart5.Instance = USART5;
-  huart5.Init.BaudRate = 115200;
-  huart5.Init.WordLength = UART_WORDLENGTH_8B;
-  huart5.Init.StopBits = UART_STOPBITS_1;
-  huart5.Init.Parity = UART_PARITY_NONE;
-  huart5.Init.Mode = UART_MODE_TX_RX;
-  huart5.Init.HwFlowCtl = UART_HWCONTROL_NONE;
-  huart5.Init.OverSampling = UART_OVERSAMPLING_16;
-  huart5.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;
-  huart5.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;
-  if (HAL_UART_Init(&huart5) != HAL_OK)
-  {
-    Error_Handler();
-  }
-  /* USER CODE BEGIN USART5_Init 2 */
-
-  /* USER CODE END USART5_Init 2 */
-
-}
-
-/**
   * Enable DMA controller clock
   */
 static void MX_DMA_Init(void)
@@ -716,6 +804,9 @@
   /* DMA1_Channel2_3_IRQn interrupt configuration */
   HAL_NVIC_SetPriority(DMA1_Channel2_3_IRQn, 0, 0);
   HAL_NVIC_EnableIRQ(DMA1_Channel2_3_IRQn);
+  /* DMA1_Channel4_5_6_7_IRQn interrupt configuration */
+  HAL_NVIC_SetPriority(DMA1_Channel4_5_6_7_IRQn, 0, 0);
+  HAL_NVIC_EnableIRQ(DMA1_Channel4_5_6_7_IRQn);
 
 }
 
@@ -743,9 +834,6 @@
   HAL_GPIO_WritePin(GPIOA, GPIO_PIN_4|GPIO_PIN_11, GPIO_PIN_RESET);
 
   /*Configure GPIO pin Output Level */
-  HAL_GPIO_WritePin(GPIOC, GPIO_PIN_4, GPIO_PIN_RESET);
-
-  /*Configure GPIO pin Output Level */
   HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0|GPIO_PIN_10|GPIO_PIN_7, GPIO_PIN_RESET);
 
   /*Configure GPIO pin Output Level */
@@ -753,16 +841,16 @@
                           |GPIO_PIN_6, GPIO_PIN_SET);
 
   /*Configure GPIO pin Output Level */
-  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_8|GPIO_PIN_12, GPIO_PIN_SET);
-HAL_GPIO_WritePin(GPIOA, GPIO_PIN_15, GPIO_PIN_RESET);
+  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_8|GPIO_PIN_12|GPIO_PIN_15, GPIO_PIN_SET);
+
   /*Configure GPIO pins : PC13 PC9 RADIO_DIO1_Pin */
   GPIO_InitStruct.Pin = GPIO_PIN_13|GPIO_PIN_9|RADIO_DIO1_Pin;
   GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING;
   GPIO_InitStruct.Pull = GPIO_NOPULL;
   HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
 
-  /*Configure GPIO pins : RADIO_NSS_Pin RADIO_nRESET_Pin PC4 */
-  GPIO_InitStruct.Pin = RADIO_NSS_Pin|RADIO_nRESET_Pin|GPIO_PIN_4;
+  /*Configure GPIO pins : RADIO_NSS_Pin RADIO_nRESET_Pin */
+  GPIO_InitStruct.Pin = RADIO_NSS_Pin|RADIO_nRESET_Pin;
   GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
   GPIO_InitStruct.Pull = GPIO_NOPULL;
   GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
@@ -776,35 +864,13 @@
 
   /*Configure GPIO pins : PA4 PA8 PA11 PA12
                            PA15 */
-  GPIO_InitStruct.Pin = GPIO_PIN_4;
+  GPIO_InitStruct.Pin = GPIO_PIN_4|GPIO_PIN_8|GPIO_PIN_11|GPIO_PIN_12
+                          |GPIO_PIN_15;
   GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
   GPIO_InitStruct.Pull = GPIO_NOPULL;
   GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
   HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
 
-  GPIO_InitStruct.Pin = GPIO_PIN_8;
-  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
-  GPIO_InitStruct.Pull = GPIO_NOPULL;
-  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
-  HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
-  
-    GPIO_InitStruct.Pin = GPIO_PIN_11;
-  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
-  GPIO_InitStruct.Pull = GPIO_NOPULL;
-  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
-  HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
-  
-    GPIO_InitStruct.Pin = GPIO_PIN_12;
-  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
-  GPIO_InitStruct.Pull = GPIO_NOPULL;
-  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
-  HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
-  
-    GPIO_InitStruct.Pin = GPIO_PIN_15;
-  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
-  GPIO_InitStruct.Pull = GPIO_NOPULL;
-  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
-  HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
   /*Configure GPIO pins : PB0 PB10 PB15 PB5
                            PB6 PB7 */
   GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_10|GPIO_PIN_15|GPIO_PIN_5
@@ -818,6 +884,12 @@
   GPIO_InitStruct.Pin = GPIO_PIN_1;
   GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
   GPIO_InitStruct.Pull = GPIO_PULLUP;
+  HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
+
+  /*Configure GPIO pin : PB12 */
+  GPIO_InitStruct.Pin = GPIO_PIN_12;
+  GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING;
+  GPIO_InitStruct.Pull = GPIO_NOPULL;
   HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
 
   /*Configure GPIO pins : SCL_Pin SDA_Pin */
@@ -868,56 +940,12 @@
 uint8_t input_5v_flag;
 uint8_t num;
 uint16_t sleep_time;
-uint16_t chongdian_time;
-void Bat_Percent_Poll()
-{
-    bat_time++;
-    if(bat_time>BAT_TIME)
-    {
-        bat_time=0;
-    bat_percent=Get_Battary();
-    }
-}
-void Powerled_Poll()
-{
-    if(!HAL_GPIO_ReadPin(INPUT_5V_GPIO_Port,INPUT_5V_Pin))
-    {
-        powerled = RED;
-    }
-}
-void Fangchai_Panduan_Poll()
-{
-    if(HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_1)) // 设备被拆卸
-    { fangchai_flag=1;}
-    else
-    { fangchai_flag=0;}
-    if(fangchai_flag)
-    {
-        fangchai_time++;
-//        if(fangchai_time%2==1&&fangchai_state==0)
-//        Beep_On();
-//        else
-//        Beep_Off();   
-//        if(fangchai_state==1||fangchai_state==2)
-//        Beep_Off();   
-    }
-    else
-    {
-        if(fangchai_state==2)
-        {
-          HAL_NVIC_SystemReset();
-        }
-        fangchai_state=0;
-        fangchai_time=0;  
-//        Beep_Off();        
-    }
-}
-
 void Sleep_Panduan_Poll()
 {
-    if(nomove_count>g_com_map[NOMOVESLEEP_TIME]&&imu_enable)
+    if(nomove_count>g_com_map[NOMOVESLEEP_TIME]&&imu_enable&&!HAL_GPIO_ReadPin(INPUT_5V_GPIO_Port,INPUT_5V_Pin))
     {
         nomove_flag=1;
+        mcu_sleep();
     }
     else
     {
@@ -950,73 +978,13 @@
 void HAL_LPTIM_CompareMatchCallback(LPTIM_HandleTypeDef *hlptim)
 {
     SystemClock_Config();
-//    Gps_Chongqi_Poll();
-    Powerled_Poll();
-//    chongdianmeiyouuwb_time++;
-//    for(int i=0;i<1000;i++)
-//    HIDO_TimerTick();
-//    HIDO_TimerPoll();
     if(delaysleep_count>0)
     delaysleep_count--;
     printf("1s唤醒\r\n");
     main_time++;
-    if(HAL_GPIO_ReadPin(INPUT_5V_GPIO_Port,INPUT_5V_Pin))
-    {
-    chongdian_time++;
-        if(chongdian_time>input5vtime)
-        {input_5v_flag=1;}
-        else
-        {input_5v_flag=0;}
-    }
-    else
-    {
-    chongdian_time=0;
-    input_5v_flag=0;    
-    }
-    if(HAL_GPIO_ReadPin(INPUT_5V_GPIO_Port,INPUT_5V_Pin)&&chongman_flag==0)
-    {
-        num++;
-        if(num>2)
-        {
-        num=0;    
-        powerled=LEDOFF;
-        loraled=LEDOFF;
-        gpsled=LEDOFF;
-        uwbled=LEDOFF;
-        Set4LEDColor_Off();
-        }
-        else
-        {
-        Set4LEDColor(powerled,loraled,gpsled,uwbled);
-        }
-    }
-    else
-    {
-        Set4LEDColor(powerled,loraled,gpsled,uwbled);
-    }
-    Fangchai_Panduan_Poll();
     heart_time++;
     work_time++;
     nomove_count++;
-    Sleep_Panduan_Poll();
-    Bat_Percent_Poll();
-
-    if(HAL_GPIO_ReadPin(INPUT_5V_GPIO_Port,INPUT_5V_Pin)&&chongman_flag==0)
-    {
-    }
-    else
-    {
-        if(chongman_flag)
-        {}
-        else
-        {
-        powerled=LEDOFF;
-        loraled=LEDOFF;
-        gpsled=LEDOFF;
-        uwbled=LEDOFF;
-        Set4LEDColor_Off();
-        }
-    }
 }
 /* USER CODE END 4 */
 

--
Gitblit v1.9.3