From dbe010cbc556a3f07136b7eac67e62f115285db8 Mon Sep 17 00:00:00 2001
From: yincheng.zhong <634916154@qq.com>
Date: 星期日, 24 三月 2024 19:00:15 +0800
Subject: [PATCH] Merge branch '免布线URT-LORA-L071' of http://47.108.70.204:60062/r/XRange_Tag into 免布线URT-LORA-L071

---
 Src/stm32l0xx_it.c |   54 +++++++++++++++++++-----------------------------------
 1 files changed, 19 insertions(+), 35 deletions(-)

diff --git a/Src/stm32l0xx_it.c b/Src/stm32l0xx_it.c
index a2f73ae..824c807 100644
--- a/Src/stm32l0xx_it.c
+++ b/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 -----------------------------------------------*/
@@ -56,15 +59,13 @@
 /* USER CODE END 0 */
 
 /* External variables --------------------------------------------------------*/
-extern DMA_HandleTypeDef hdma_adc;
 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 DMA_HandleTypeDef hdma_usart5_rx;
-extern DMA_HandleTypeDef hdma_usart5_tx;
 extern UART_HandleTypeDef hlpuart1;
 extern UART_HandleTypeDef huart1;
-extern UART_HandleTypeDef huart5;
 /* USER CODE BEGIN EV */
 
 /* USER CODE END EV */
@@ -179,20 +180,6 @@
 }
 
 /**
-  * @brief This function handles DMA1 channel 1 interrupt.
-  */
-void DMA1_Channel1_IRQHandler(void)
-{
-  /* USER CODE BEGIN DMA1_Channel1_IRQn 0 */
-
-  /* USER CODE END DMA1_Channel1_IRQn 0 */
-  HAL_DMA_IRQHandler(&hdma_adc);
-  /* USER CODE BEGIN DMA1_Channel1_IRQn 1 */
-
-  /* USER CODE END DMA1_Channel1_IRQn 1 */
-}
-
-/**
   * @brief This function handles DMA1 channel 2 and channel 3 interrupts.
   */
 void DMA1_Channel2_3_IRQHandler(void)
@@ -215,8 +202,8 @@
   /* USER CODE BEGIN DMA1_Channel4_5_6_7_IRQn 0 */
 
   /* USER CODE END DMA1_Channel4_5_6_7_IRQn 0 */
-  HAL_DMA_IRQHandler(&hdma_usart5_rx);
-  HAL_DMA_IRQHandler(&hdma_usart5_tx);
+  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 */
@@ -234,20 +221,6 @@
   /* USER CODE BEGIN LPTIM1_IRQn 1 */
 
   /* USER CODE END LPTIM1_IRQn 1 */
-}
-
-/**
-  * @brief This function handles USART4 and USART5 interrupt.
-  */
-void USART4_5_IRQHandler(void)
-{
-  /* USER CODE BEGIN USART4_5_IRQn 0 */
-__HAL_UART_CLEAR_IDLEFLAG(&huart1);
-  /* USER CODE END USART4_5_IRQn 0 */
-  HAL_UART_IRQHandler(&huart5);
-  /* USER CODE BEGIN USART4_5_IRQn 1 */
-
-  /* USER CODE END USART4_5_IRQn 1 */
 }
 
 /**
@@ -270,7 +243,18 @@
 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 */

--
Gitblit v1.9.3