From fad1b368e3d987d753d3424c0144f574c6e44d2c Mon Sep 17 00:00:00 2001
From: WXK <287788329@qq.com>
Date: 星期四, 11 四月 2024 11:14:06 +0800
Subject: [PATCH] Merge branch '免布线URT-LORA-L071' of http://47.108.70.204:60062/r/XRange_Tag into 免布线URT-LORA-L071

---
 Src/main.c |   86 ++++++++++++++++++++++++------------------
 1 files changed, 49 insertions(+), 37 deletions(-)

diff --git a/Src/main.c b/Src/main.c
index aaa72a2..a33f031 100644
--- a/Src/main.c
+++ b/Src/main.c
@@ -125,7 +125,7 @@
 uint8_t anjian_flag;
 uint8_t  stationary_flag;
 uint16_t stationary_num;
-uint8_t recv_end_time;
+uint16_t recv_end_time;
 u16 GetLPTime(void)
 {
 	u16 count=HAL_LPTIM_ReadCounter(&hlptim1);
@@ -245,6 +245,10 @@
 		{
             SCB->AIRCR = 0X05FA0000|(unsigned int)0x04; //软复位回到bootloader   
 		}
+        if(memcmp(g_com_map2,g_com_map,COM_MAP_SIZE)!=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)|15;
 //    g_com_map[DEV_ID]=1158;
 //    #ifdef DEBUG_MODE
 //   // g_com_map[GROUP_ID]=21;
@@ -342,6 +346,10 @@
 	{
 	  g_com_map[COM_INTERVAL]=1000;
 	}
+        if(g_com_map[LORA_POWER]>22)
+    {
+        g_com_map[LORA_POWER] = 22;
+    }
 	 if(module_power>67)
 		{module_power=67;}
 		if(module_power<0)
@@ -468,17 +476,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 +498,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 +514,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 +614,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 +655,23 @@
   /* 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();        //看门狗务必放到开GPS电源开uwb电源后面,否则GPS工作不正常。
+  MX_DMA_Init();         //看门狗务必放到开GPS电源开uwb电源后面,否则GPS工作不正常。
+  MX_ADC_Init();         //看门狗务必放到开GPS电源开uwb电源后面,否则GPS工作不正常。
+  MX_LPTIM1_Init();      //看门狗务必放到开GPS电源开uwb电源后面,否则GPS工作不正常。
+  MX_USART1_UART_Init(); //看门狗务必放到开GPS电源开uwb电源后面,否则GPS工作不正常。
+  MX_SPI1_Init();        //看门狗务必放到开GPS电源开uwb电源后面,否则GPS工作不正常。
+  MX_LPUART1_UART_Init();//看门狗务必放到开GPS电源开uwb电源后面,否则GPS工作不正常。
+//  MX_IWDG_Init();      //看门狗务必放到开GPS电源开uwb电源后面,否则GPS工作不正常。
+  MX_USART5_UART_Init(); //看门狗务必放到开GPS电源开uwb电源后面,否则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();
+    MX_IWDG_Init(); //看门狗务必放到开GPS电源开uwb电源后面,否则GPS工作不正常。
 #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 +709,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();	
@@ -1112,8 +1123,8 @@
 
   /*Configure GPIO pin Output Level */
   HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13|GPIO_PIN_7|GPIO_PIN_8, GPIO_PIN_RESET);
-
-  /*Configure GPIO pin Output Level */
+  
+  /*Configure GPIO pin O__set_MSPutput Level */
   HAL_GPIO_WritePin(GPIOC, RADIO_NSS_Pin|RADIO_nRESET_Pin|GPIO_PIN_4, GPIO_PIN_SET);
 
   /*Configure GPIO pin Output Level */
@@ -1268,6 +1279,7 @@
     yuyin_no_sleep_flag=0;
     }
 }
+#define NOGPS_RESET_TIME 300
 void HAL_LPTIM_CompareMatchCallback(LPTIM_HandleTypeDef *hlptim)
 {
  if(chongqi_flag==0&&shengji_flag==0)
@@ -1280,8 +1292,8 @@
     if(yuyin_no_sleep_flag==0)
     {
     recv_end_time++;
-//    if(recv_end_time>3)
-//    {HAL_NVIC_SystemReset();}
+    if(recv_end_time>NOGPS_RESET_TIME)
+    {HAL_NVIC_SystemReset();}
     }
     Yuying_Poll();
     Lora_send_flag=1;

--
Gitblit v1.9.3