From abd6a3fdf20a1d3e6629505386efe36006ef907d Mon Sep 17 00:00:00 2001
From: WXK <287788329@qq.com>
Date: 星期二, 26 三月 2024 10:30:43 +0800
Subject: [PATCH] V1.9,加入看门狗,注意看门狗初始化要放在lp串口初始化后面

---
 Src/main.c |   70 +++++++++++++++++++----------------
 1 files changed, 38 insertions(+), 32 deletions(-)

diff --git a/Src/main.c b/Src/main.c
index aaa72a2..4121365 100644
--- a/Src/main.c
+++ b/Src/main.c
@@ -245,6 +245,10 @@
 		{
             SCB->AIRCR = 0X05FA0000|(unsigned int)0x04; //软复位回到bootloader   
 		}
+        if(memcmp(g_com_map2,g_com_map,200)!=0)
+         {
+            SCB->AIRCR = 0X05FA0000|(unsigned int)0x04;
+         }
 
 	}
 
@@ -302,7 +306,7 @@
 	hardware_pici = STMFLASH_ReadHalfWord(FLASH_HARDWARE_VERSION_MAP+2);
 	hardware_type = STMFLASH_ReadHalfWord(FLASH_HARDWARE_VERSION_MAP+4);
 	//deca_sleep(1000);
-	g_com_map[VERSION] = (1<<8)|7;
+	g_com_map[VERSION] = (1<<8)|9;
 //    g_com_map[DEV_ID]=1158;
 //    #ifdef DEBUG_MODE
 //   // g_com_map[GROUP_ID]=21;
@@ -468,17 +472,14 @@
     HAL_UART_Transmit_DMA(&hlpuart1,Close_RMC,100);
     Delay_Ms(150);
 }
+#define GPS_SIZE 400
 extern uint16_t Lora_rece_error;
 extern uint16_t Beepchixutime;
-#define BleRxBufferSize 1
-uint8_t aRxBuffer[1],group_id,GPSRxBuffer[BleRxBufferSize];
-uint8_t ble_rx_success_flag;
+uint8_t group_id;
 uint8_t fangzhijinrushuimian_flag;
-uint8_t GPSchangdu;
-uint8_t GPS_GGAdate[400];
-uint8_t GPS_GGAdatenum;
-void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) 
-{
+uint8_t GPS_GGAdate[GPS_SIZE];
+//void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) 
+//{
 //    {
 //        GPS_RecvFsm(GPSRxBuffer[0]);
 //        GPS_Recv_Poll(GPSRxBuffer[0]);
@@ -493,11 +494,11 @@
 //    }
 //    HAL_UART_Receive_IT(&hlpuart1, (uint8_t *)GPSRxBuffer, 1);
 //    }
-}
-uint8_t ble_rxdate111[3]={0x11,0x22,0x33};
-void HAL_UARTEx_WakeupCallback(UART_HandleTypeDef *huart)
-{
-        SystemClock_Config();
+//}
+//uint8_t ble_rxdate111[3]={0x11,0x22,0x33};
+//void HAL_UARTEx_WakeupCallback(UART_HandleTypeDef *huart)
+//{
+//        SystemClock_Config();
 // HAL_UART_Transmit(&hlpuart1,(uint8_t*)ble_rxdate111,3,1000);
 ////  huart->RxState = HAL_UART_STATE_BUSY_RX;
 //        ble_rxzhongzhuandate[ble_zhongzhuannum]=BleRxBuffer[0];
@@ -509,15 +510,15 @@
 //    memset(ble_rxzhongzhuandate,0,sizeof(ble_rxzhongzhuandate));
 //    }
 //        if(lp_time>3)
-      if(HAL_UART_Receive_DMA(&hlpuart1,GPS_GGAdate, LPUART_SIZE))  
-    {
-     Error_Handler();
-    }   
-    fangzhijinrushuimian_flag=1;
+//      if(HAL_UART_Receive_DMA(&hlpuart1,GPS_GGAdate, LPUART_SIZE))  
+//    {
+//     Error_Handler();
+//    }   
+//    fangzhijinrushuimian_flag=1;
 //    HAL_UART_Receive_IT(&hlpuart1, (uint8_t *)GPSRxBuffer, 1);
 //    HAL_UART_Transmit(&hlpuart1,ble_rxdate,2,1000);
     
-}
+//}
 extern uint8_t  yuyin_no_sleep_flag;
 extern uint8_t yuyin_sendflag;
 extern uint8_t xiafayuyin_data[200];
@@ -609,9 +610,12 @@
 {
 if(recv_end_flag == 1)  //接收完成标志
 {
+    uint16_t i;
     recv_end_time=0;
-GPS_ParseGGA(GPS_GGAdate, rx_len);  
-memset(GPS_GGAdate,0,rx_len);
+    for(i=0;i<GPS_SIZE;i++)
+    {GPS_RecvFsm(GPS_GGAdate[i]);}
+//GPS_ParseGGA(GPS_GGAdate, rx_len);  
+memset(GPS_GGAdate,0,GPS_SIZE);
 rx_len = 0;//清除计数
 recv_end_flag = 0;//清除接收结束标志位
 fangzhijinrushuimian_flag=0;
@@ -647,22 +651,22 @@
   /* USER CODE END SysInit */
 
   /* Initialize all configured peripherals */
-  MX_GPIO_Init();
-  MX_DMA_Init();
-  MX_ADC_Init();
-//  MX_IWDG_Init();
-  MX_LPTIM1_Init();
-  MX_USART1_UART_Init();
-  MX_SPI1_Init();
-  MX_LPUART1_UART_Init();
-  MX_USART5_UART_Init();
+  MX_GPIO_Init();        //看门狗务必放到lp串口后面,否则GPS工作不正常。
+  MX_DMA_Init();         //看门狗务必放到lp串口后面,否则GPS工作不正常。
+  MX_ADC_Init();         //看门狗务必放到lp串口后面,否则GPS工作不正常。
+  MX_LPTIM1_Init();      //看门狗务必放到lp串口后面,否则GPS工作不正常。
+  MX_USART1_UART_Init(); //看门狗务必放到lp串口后面,否则GPS工作不正常。
+  MX_SPI1_Init();        //看门狗务必放到lp串口后面,否则GPS工作不正常。
+  MX_LPUART1_UART_Init();//看门狗务必放到lp串口后面,否则GPS工作不正常。
+  MX_IWDG_Init();        //看门狗务必放到lp串口后面,否则GPS工作不正常。
+  MX_USART5_UART_Init(); //看门狗务必放到lp串口后面,否则GPS工作不正常。
   /* USER CODE BEGIN 2 */
     HAL_GPIO_WritePin(GPIOA, GPIO_PIN_12, GPIO_PIN_SET); //开GPS电源
     delay_ms(10);
     HAL_GPIO_WritePin(GPIOA, GPIO_PIN_15, GPIO_PIN_SET); //开uwb电源
     Program_Init();
 #ifdef _USE_BAR
-BarInit();
+//BarInit();
 #endif 
     Dw1000_Init();
     dwt_configuresleep(DWT_PRESRV_SLEEP | DWT_CONFIG, DWT_WAKE_CS | DWT_WAKE_WK| DWT_SLP_EN);
@@ -700,10 +704,12 @@
       if(gotosleep_flag==1)
       {
           Jingzhi_Poll();
+          HAL_IWDG_Refresh(&hiwdg);
           HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON, PWR_STOPENTRY_WFI);
       }
       else
       {
+      HAL_IWDG_Refresh(&hiwdg);
       Lpuart_rx_Poll();
       OneSecondTask();
       IdleTask();	

--
Gitblit v1.9.3