1
WXK
2024-03-18 d9321b6a77d97a67fb6e9f0a9fd4da73a1da4078
Src/stm32l0xx_it.c
@@ -43,6 +43,9 @@
/* Private variables ---------------------------------------------------------*/
/* USER CODE BEGIN PV */
float nomove_count=0;
volatile uint16_t rx_len ;  //接收一帧数据的长度
volatile uint8_t recv_end_flag; //一帧数据接收完成标志
extern uint8_t GPS_GGAdate[200];
/* USER CODE END PV */
/* Private function prototypes -----------------------------------------------*/
@@ -57,18 +60,21 @@
/* External variables --------------------------------------------------------*/
extern LPTIM_HandleTypeDef hlptim1;
extern DMA_HandleTypeDef hdma_lpuart1_rx;
extern DMA_HandleTypeDef hdma_lpuart1_tx;
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.
  * @brief This function handles Non maskable Interrupt.
  */
void NMI_Handler(void)
{
@@ -91,6 +97,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,22 +155,28 @@
void EXTI0_1_IRQHandler(void)
{
  /* USER CODE BEGIN EXTI0_1_IRQn 0 */
   if(GET_IMUINT)
   {
      nomove_count = 0;
   }
      if(!GET_USERKEY)
   {
      waitusart_timer = tag_frequency*10;
   }
  /* 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 */
   //DW_DISABLE;
  /* USER CODE END EXTI0_1_IRQn 1 */
}
/**
  * @brief This function handles EXTI line 4 to 15 interrupts.
  */
void EXTI4_15_IRQHandler(void)
{
  /* USER CODE BEGIN EXTI4_15_IRQn 0 */
  /* USER CODE END EXTI4_15_IRQn 0 */
  HAL_GPIO_EXTI_IRQHandler(RADIO_DIO1_Pin);
  HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_12);
  /* USER CODE BEGIN EXTI4_15_IRQn 1 */
  /* USER CODE END EXTI4_15_IRQn 1 */
}
/**
@@ -182,13 +195,27 @@
}
/**
  * @brief This function handles DMA1 channel 4, channel 5, channel 6 and channel 7 interrupts.
  */
void DMA1_Channel4_5_6_7_IRQHandler(void)
{
  /* USER CODE BEGIN DMA1_Channel4_5_6_7_IRQn 0 */
  /* USER CODE END DMA1_Channel4_5_6_7_IRQn 0 */
  HAL_DMA_IRQHandler(&hdma_lpuart1_rx);
  HAL_DMA_IRQHandler(&hdma_lpuart1_tx);
  /* USER CODE BEGIN DMA1_Channel4_5_6_7_IRQn 1 */
  /* USER CODE END DMA1_Channel4_5_6_7_IRQn 1 */
}
/**
  * @brief This function handles LPTIM1 global interrupt / LPTIM1 wake-up interrupt through EXTI line 29.
  */
void LPTIM1_IRQHandler(void)
{
  /* USER CODE BEGIN LPTIM1_IRQn 0 */
  /* USER CODE END LPTIM1_IRQn 0 */
  HAL_LPTIM_IRQHandler(&hlptim1);
  /* USER CODE BEGIN LPTIM1_IRQn 1 */
@@ -210,7 +237,31 @@
  /* 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 */
   uint32_t tmp_flag = 0;
   uint32_t temp;
   tmp_flag =__HAL_UART_GET_FLAG(&hlpuart1,UART_FLAG_IDLE); //获取IDLE标志位
   if((tmp_flag != RESET))//idle标志被置位
   {
      __HAL_UART_CLEAR_IDLEFLAG(&hlpuart1);//清除标志位
      HAL_UART_DMAStop(&hlpuart1); //  停止DMA传输,防止
      temp  =  __HAL_DMA_GET_COUNTER(&hdma_lpuart1_rx);// 获取DMA中未传输的数据个数
      rx_len = LPUART_SIZE - temp; //总计数减去未传输的数据个数,得到已经接收的数据个数
      recv_end_flag = 1;   // 接受完成标志位置1
//        HAL_UART_Receive_DMA(&hlpuart1,GPS_GGAdate,LPUART_SIZE);//重新打开DMA接收
    }
  /* 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 */
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/