From 599d24259d97b0ce0990ca998bc7b49f08ce3051 Mon Sep 17 00:00:00 2001
From: WXK <287788329@qq.com>
Date: 星期二, 30 一月 2024 14:51:23 +0800
Subject: [PATCH] 1

---
 Src/main.c |   72 +++++++++++++++++++++++++-----------
 1 files changed, 50 insertions(+), 22 deletions(-)

diff --git a/Src/main.c b/Src/main.c
index 8e2cf8e..36132e5 100644
--- a/Src/main.c
+++ b/Src/main.c
@@ -39,7 +39,7 @@
 #define NSH1 0x0001
 #define GP   0x0002
 #define FLASH_HARDWARE_VERSION_MAP		(uint32_t)0x08004F00    //硬件版本号和批次信息位置
-#define DEBUG_MODE
+//#define DEBUG_MODE
 UART_WakeUpTypeDef Selection;
 /* USER CODE END Includes */
 
@@ -534,24 +534,42 @@
 uint8_t aRxBuffer[1],group_id,BleRxBuffer[BleRxBufferSize];
 uint8_t ble_rx_success_flag;
 uint8_t fangzhijinrushuimian_flag;
-uint8_t ble_rxzhongzhuandate[1024];
+uint8_t ble_rxzhongzhuandate[200];
 uint8_t ble_zhongzhuannum;
-uint8_t ble_rxdate[50]={1,2,3,4,5,6,7,8,9};
+uint8_t ble_rxdate[200]={1,2,3,4,5,6,7,8,9};
+uint8_t changdu;
+uint8_t Close_RMC[20]="$CCMSG,RMC,1,0,*04\r\n";
+uint8_t Close_GSA[20]="$CCMSG,GSA,1,0,*0D\r\n";
+uint8_t Close_GSV[20]="$CCMSG,GSV,1,0,*1A\r\n";
+uint8_t Close_GLL[20]="$CCMSG,GLL,1,0,*1F\r\n";
+uint8_t Close_TXT[20]="$CCMSG,TXT,1,0,*00\r\n";
+uint8_t gps_ceju=0;
 void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) 
 {
-
+//HAL_UART_Transmit(&huart1,&ble_zhongzhuannum,1,1000);
     {
     ble_rxzhongzhuandate[ble_zhongzhuannum]=BleRxBuffer[0];
     ble_zhongzhuannum++;
-//    if(ble_rxzhongzhuandate[ble_zhongzhuannum-1]==0x0A&&ble_rxzhongzhuandate[ble_zhongzhuannum-2]==0x0D)
-//    {
-////        HAL_UART_Transmit(&hlpuart1,ble_rxdate,5,1000);
-//        ble_zhongzhuannum=0;
-//    memcpy(ble_rxdate,ble_rxzhongzhuandate,50);
-//    memset(ble_rxzhongzhuandate,0,sizeof(ble_rxzhongzhuandate));
-//        fangzhijinrushuimian_flag=0;
-//        ble_rx_success_flag=1;
-//    }
+    if(ble_rxzhongzhuandate[ble_zhongzhuannum-1]==0x0A&&ble_rxzhongzhuandate[ble_zhongzhuannum-2]==0x0D)
+    {
+//        HAL_UART_Transmit(&hlpuart1,ble_rxdate,5,1000);
+    memcpy(ble_rxdate,ble_rxzhongzhuandate,ble_zhongzhuannum);
+    changdu= ble_zhongzhuannum;
+    memset(ble_rxzhongzhuandate,0,sizeof(ble_rxzhongzhuandate));
+        ble_zhongzhuannum=0;
+        fangzhijinrushuimian_flag=0;
+        ble_rx_success_flag=1;
+        if(changdu>40)
+        {
+            if(state5v==0)
+             LED2_TB_ON;
+        }
+        else
+        {
+            if(state5v==0)
+            LED2_TR_ON;
+        }
+    }
     HAL_UART_Receive_IT(&hlpuart1, (uint8_t *)BleRxBuffer, 1);
     }
 }
@@ -559,6 +577,7 @@
 void HAL_UARTEx_WakeupCallback(UART_HandleTypeDef *huart)
 {
         SystemClock_Config();
+    UsartInit();
 // HAL_UART_Transmit(&hlpuart1,(uint8_t*)ble_rxdate111,3,1000);
 ////  huart->RxState = HAL_UART_STATE_BUSY_RX;
 //        ble_rxzhongzhuandate[ble_zhongzhuannum]=BleRxBuffer[0];
@@ -598,7 +617,10 @@
 
 //          
 //      }
-//      HAL_UART_Transmit(&hlpuart1,ble_rxdate,10,1000);
+      HAL_UART_Transmit(&huart1,ble_rxdate,changdu,1000);
+      memset(ble_rxdate,0,sizeof(ble_rxdate));
+      changdu=0;
+      Delay_Ms(100);
 //   memset(ble_rxdate,0,sizeof(ble_rxdate));
   }
 }
@@ -665,7 +687,13 @@
     bat_percent=Get_VDDVlotage();
       GetLoratx_frequency();
      HAL_UART_Receive_IT(&hlpuart1, (uint8_t *)BleRxBuffer, 1);
-//     HAL_GPIO_WritePin(GPIOA, GPIO_PIN_2, GPIO_PIN_SET); //开GPS电源
+     HAL_GPIO_WritePin(GPIOA, GPIO_PIN_2, GPIO_PIN_SET); //开GPS电源
+    Delay_Ms(1000);
+    HAL_UART_Transmit(&hlpuart1,Close_RMC,22,1000);
+    HAL_UART_Transmit(&hlpuart1,Close_GSA,22,1000);
+    HAL_UART_Transmit(&hlpuart1,Close_GSV,22,1000);
+    HAL_UART_Transmit(&hlpuart1,Close_GLL,22,1000);
+    HAL_UART_Transmit(&hlpuart1,Close_TXT,22,1000);
 //    Lora47X_Init();
 //	mcu_sleep();
 	//LED0_BLINK;		
@@ -688,7 +716,7 @@
 //Lora_rx_open();
 //      Lora_Tx_Poll();
       Lora_Tx_Poll();
-//      Ble_rx_Poll();
+      Ble_rx_Poll();
 //    HAL_IWDG_Refresh(&hiwdg);
     IdleTask();	
 //      Lora_rece_error=0;
@@ -698,13 +726,13 @@
     #ifndef DEBUG_MODE	
     if(!HAL_GPIO_ReadPin(INPUT_5V_GPIO_Port,INPUT_5V_Pin))	
   {      
-//      if(fangzhijinrushuimian_flag==0)
+      if(fangzhijinrushuimian_flag==0)
           {
-//    Selection.WakeUpEvent = UART_WAKEUP_ON_STARTBIT;
-//    HAL_UARTEx_EnableClockStopMode(&hlpuart1);
-//    HAL_UARTEx_EnableStopMode( &hlpuart1 );
-//    HAL_UARTEx_StopModeWakeUpSourceConfig( &hlpuart1, Selection );
-//    __HAL_UART_ENABLE_IT(&hlpuart1, UART_IT_WUF);      
+    Selection.WakeUpEvent = UART_WAKEUP_ON_STARTBIT;
+    HAL_UARTEx_EnableClockStopMode(&hlpuart1);
+    HAL_UARTEx_EnableStopMode( &hlpuart1 );
+    HAL_UARTEx_StopModeWakeUpSourceConfig( &hlpuart1, Selection );
+    __HAL_UART_ENABLE_IT(&hlpuart1, UART_IT_WUF);      
     HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON, PWR_STOPENTRY_WFI);  
           }
   }

--
Gitblit v1.9.3