From 8f191911d62fe7a9a18b23aaa2e27e23dc8bf58f Mon Sep 17 00:00:00 2001
From: yincheng.zhong <634916154@qq.com>
Date: 星期三, 02 四月 2025 14:38:51 +0800
Subject: [PATCH] 2.55 开启休眠功能

---
 Src/stm32l0xx_it.c |   63 ++++++++++++++++++++++++-------
 1 files changed, 48 insertions(+), 15 deletions(-)

diff --git a/Src/stm32l0xx_it.c b/Src/stm32l0xx_it.c
index fb8ecaf..3b1d7f8 100644
--- a/Src/stm32l0xx_it.c
+++ b/Src/stm32l0xx_it.c
@@ -32,7 +32,7 @@
 
 /* Private define ------------------------------------------------------------*/
 /* USER CODE BEGIN PD */
- 
+
 /* USER CODE END PD */
 
 /* Private macro -------------------------------------------------------------*/
@@ -42,7 +42,7 @@
 
 /* Private variables ---------------------------------------------------------*/
 /* USER CODE BEGIN PV */
-
+float nomove_count=0;
 /* USER CODE END PV */
 
 /* Private function prototypes -----------------------------------------------*/
@@ -59,13 +59,14 @@
 extern LPTIM_HandleTypeDef hlptim1;
 extern DMA_HandleTypeDef hdma_usart1_rx;
 extern DMA_HandleTypeDef hdma_usart1_tx;
+extern UART_HandleTypeDef hlpuart1;
 extern UART_HandleTypeDef huart1;
 /* USER CODE BEGIN EV */
 
 /* USER CODE END EV */
 
 /******************************************************************************/
-/*           Cortex-M0+ Processor Interruption and Exception Handlers          */ 
+/*           Cortex-M0+ Processor Interruption and Exception Handlers          */
 /******************************************************************************/
 /**
   * @brief This function handles Non maskable interrupt.
@@ -91,6 +92,7 @@
   while (1)
   {
     /* USER CODE BEGIN W1_HardFault_IRQn 0 */
+        SCB->AIRCR = 0X05FA0000|(unsigned int)0x04; //软复位回到bootloader
     /* USER CODE END W1_HardFault_IRQn 0 */
   }
 }
@@ -148,21 +150,39 @@
 void EXTI0_1_IRQHandler(void)
 {
   /* USER CODE BEGIN EXTI0_1_IRQn 0 */
-	//GPIO_Toggle(MOTOR_GPIO_Port,MOTOR_Pin);
+    if(GET_IMUINT)
+    {
+        nomove_count = 0;
+    }
+
+    if(!GET_USERKEY)
+    {
+        nomove_count = 0;
+        waitusart_timer = tag_frequency*USART_KEEPWAKE_TIME;
+        UsartInit();
+        //	MOTOR_ON;
+    }
+
   /* USER CODE END EXTI0_1_IRQn 0 */
   HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_0);
   HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_1);
   /* USER CODE BEGIN EXTI0_1_IRQn 1 */
-//	HAL_LPTIM_DeInit(&hlptim1);
-////HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON, PWR_STOPENTRY_WFI);  
-//HAL_PWR_DisableWakeUpPin(PWR_WAKEUP_PIN1);  
-//  /*Clear all related wakeup flags*/
-//  __HAL_PWR_CLEAR_FLAG(PWR_FLAG_WU);  
-//  /*Re-enable all used wakeup sources: Pin1(PA.0)*/
-//  HAL_PWR_EnableWakeUpPin(PWR_WAKEUP_PIN1);
-//  /*Enter the Standby mode*/
-//  HAL_PWR_EnterSTANDBYMode();	
+    //DW_DISABLE;
   /* USER CODE END EXTI0_1_IRQn 1 */
+}
+
+/**
+  * @brief This function handles EXTI line 2 and line 3 interrupts.
+  */
+void EXTI2_3_IRQHandler(void)
+{
+  /* USER CODE BEGIN EXTI2_3_IRQn 0 */
+
+  /* USER CODE END EXTI2_3_IRQn 0 */
+  HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_3);
+  /* USER CODE BEGIN EXTI2_3_IRQn 1 */
+
+  /* USER CODE END EXTI2_3_IRQn 1 */
 }
 
 /**
@@ -187,7 +207,6 @@
 {
   /* USER CODE BEGIN LPTIM1_IRQn 0 */
 
-		
   /* USER CODE END LPTIM1_IRQn 0 */
   HAL_LPTIM_IRQHandler(&hlptim1);
   /* USER CODE BEGIN LPTIM1_IRQn 1 */
@@ -201,7 +220,7 @@
 void USART1_IRQHandler(void)
 {
   /* USER CODE BEGIN USART1_IRQn 0 */
- __HAL_UART_CLEAR_IDLEFLAG(&huart1);
+    __HAL_UART_CLEAR_IDLEFLAG(&huart1);
   /* USER CODE END USART1_IRQn 0 */
   HAL_UART_IRQHandler(&huart1);
   /* USER CODE BEGIN USART1_IRQn 1 */
@@ -209,6 +228,20 @@
   /* USER CODE END USART1_IRQn 1 */
 }
 
+/**
+  * @brief This function handles LPUART1 global interrupt / LPUART1 wake-up interrupt through EXTI line 28.
+  */
+void LPUART1_IRQHandler(void)
+{
+  /* USER CODE BEGIN LPUART1_IRQn 0 */
+
+  /* USER CODE END LPUART1_IRQn 0 */
+  HAL_UART_IRQHandler(&hlpuart1);
+  /* USER CODE BEGIN LPUART1_IRQn 1 */
+
+  /* USER CODE END LPUART1_IRQn 1 */
+}
+
 /* USER CODE BEGIN 1 */
 
 /* USER CODE END 1 */

--
Gitblit v1.9.3