From 3256682652023001f9f418519e1aafe868d34137 Mon Sep 17 00:00:00 2001 From: WXK <287788329@qq.com> Date: 星期一, 25 三月 2024 11:14:34 +0800 Subject: [PATCH] V1.13,防止标签休眠导致lora升级失败 --- Src/stm32l0xx_it.c | 69 +++++++++++++++++++++++++--------- 1 files changed, 50 insertions(+), 19 deletions(-) diff --git a/Src/stm32l0xx_it.c b/Src/stm32l0xx_it.c index 4ec0f12..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 */ } } @@ -145,26 +147,42 @@ /** * @brief This function handles EXTI line 0 and line 1 interrupts. */ -uint8_t sleep_flag=0; 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 */ - //sleep_flag=1; - //HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON, PWR_STOPENTRY_WFI); + 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(); + /* USER CODE BEGIN EXTI0_1_IRQn 1 */ + //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 */ } /** @@ -189,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 */ @@ -203,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 */ @@ -211,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