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