From 8e20afae32b9e4115caeea49a470016f71661555 Mon Sep 17 00:00:00 2001 From: WXK <287788329@qq.com> Date: 星期四, 09 一月 2025 09:25:33 +0800 Subject: [PATCH] 目前调试完毕 1s上发一次 适配最新板子 看门狗跟静止休眠能同时用,去掉了低功耗超链接模式目前 --- Core/Src/main.c | 502 ++++++++++++++++++++++++++----------------------------- 1 files changed, 235 insertions(+), 267 deletions(-) diff --git a/Core/Src/main.c b/Core/Src/main.c index 24bbaef..505c219 100644 --- a/Core/Src/main.c +++ b/Core/Src/main.c @@ -67,16 +67,20 @@ LPTIM_HandleTypeDef hlptim1; +UART_HandleTypeDef hlpuart1; +UART_HandleTypeDef huart1; +UART_HandleTypeDef huart2; +UART_HandleTypeDef huart5; +DMA_HandleTypeDef hdma_lpuart1_rx; +DMA_HandleTypeDef hdma_lpuart1_tx; +DMA_HandleTypeDef hdma_usart2_rx; +DMA_HandleTypeDef hdma_usart5_rx; + RTC_HandleTypeDef hrtc; SPI_HandleTypeDef hspi1; TIM_HandleTypeDef htim3; - -UART_HandleTypeDef huart1; -UART_HandleTypeDef huart2; -UART_HandleTypeDef huart5; -DMA_HandleTypeDef hdma_usart5_rx; /* USER CODE BEGIN PV */ @@ -95,6 +99,7 @@ static void MX_USART1_UART_Init(void); static void MX_TIM3_Init(void); static void MX_IWDG_Init(void); +static void MX_LPUART1_UART_Init(void); /* USER CODE BEGIN PFP */ /* USER CODE END PFP */ @@ -121,14 +126,59 @@ uint16_t nomove_count; uint16_t debug1,debug2,debug3,debug4; extern uint8_t delaysleep_count; +uint8_t stop_flag; +void mcu_sleep(void) +{ + GPIO_InitTypeDef GPIO_InitStruct = { 0 }; +// LIS3DH_Data_Init(); +// while(1) +// {} +// HAL_NVIC_SystemReset(); +// __HAL_FLASH_PREFETCH_BUFFER_DISABLE(); + GPS_PowerOff(); +// HAL_GPIO_WritePin(GPIOA,GPIO_PIN_15, GPIO_PIN_RESET); +// HAL_GPIO_WritePin(GPIOB,GPIO_PIN_2|GPIO_PIN_6, GPIO_PIN_RESET); + HAL_SuspendTick(); + Set4LEDColor(LEDOFF,LEDOFF,LEDOFF,LEDOFF); + + HAL_TIM_Base_DeInit(&htim3); + HAL_TIM_Base_Stop_IT(&htim3); +// HAL_TIM_Base_DeInit(&hlptim1); +// HAL_LPTIM_DeInit(&hlptim1); +// HAL_LPTIM_TimeOut_Stop_IT(&hlptim1); + HAL_SPI_DeInit(&hspi1); + HAL_UART_DeInit(&huart1); + HAL_UART_DeInit(&huart2); + HAL_UART_DeInit(&hlpuart1); + // HAL_UART_DeInit(&huart6); + __HAL_RCC_DMA1_CLK_DISABLE(); + // __HAL_RCC_DMA2_CLK_DISABLE(); + + GPIO_InitStruct.Pin = GPIO_PIN_All; + GPIO_InitStruct.Mode = GPIO_MODE_ANALOG; + GPIO_InitStruct.Pull = GPIO_NOPULL; + // + HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); + HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); + +// GPIO_InitStruct.Pin = GPIO_PIN_All&(~GPIO_PIN_8)&(~GPIO_PIN_0); +// GPIO_InitStruct.Mode = GPIO_MODE_ANALOG; +// GPIO_InitStruct.Pull = GPIO_NOPULL; +// HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); + stop_flag=1; + HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON,PWR_STOPENTRY_WFI); +// while(1) +// {} +// HAL_ResumeTick(); +// nomove_count = 0; +// HAL_NVIC_SystemReset(); +} void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) { - if(GPIO_Pin == RADIO_DIO1_Pin) + if(GPIO_Pin == GPIO_PIN_12) { // SystemClock_Config(); -// irq_num++; -// RadioIrqProcess(); - debug1++; + PowerDownDetect(); } if(GPIO_Pin == GPIO_PIN_9) { @@ -202,7 +252,6 @@ /* USER CODE END SysInit */ /* Initialize all configured peripherals */ -// MX_IWDG_Init(); MX_GPIO_Init(); MX_DMA_Init(); MX_RTC_Init(); @@ -213,21 +262,23 @@ MX_LPTIM1_Init(); MX_USART1_UART_Init(); MX_TIM3_Init(); + MX_IWDG_Init(); + MX_LPUART1_UART_Init(); /* USER CODE BEGIN 2 */ // __disable_irq(); Uart_Register(UART_ID_DBG, &huart1); - Uart_Register(UART_ID_4G, &huart5); - Uart_Register(UART_ID_GPS, &huart2); + Uart_Register(UART_ID_4G, &huart2); + Uart_Register(UART_ID_GPS, &hlpuart1); SPI_Register(SPI_ID_FLASH, &hspi1); AIR780EDriver_PinRegister(AIR780E_PIN_3V8_EN, GPIOB, GPIO_PIN_10); - AIR780EDriver_PinRegister(AIR780E_PIN_PWRKEY, GPIOB, GPIO_PIN_0); - AIR780EDriver_PinRegister(AIR780E_PIN_RI, GPIOC, GPIO_PIN_13); - GPS_PinRegister(GPS_PIN_REST, GPIOC, GPIO_PIN_4); +// AIR780EDriver_PinRegister(AIR780E_PIN_PWRKEY, GPIOB, GPIO_PIN_0); +// AIR780EDriver_PinRegister(AIR780E_PIN_RI, GPIOC, GPIO_PIN_13); +// GPS_PinRegister(GPS_PIN_REST, GPIOC, GPIO_PIN_4); SPIFlash_PinRegister(SPI_FLASH_ID_0, SPI_FLASH_PIN_CS, GPIOB, GPIO_PIN_5); - HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_SET);//开4g电源 +// HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_SET);//开4g电源 SPIFlash_Init(SPI_FLASH_ID_0); DBG_Init(); @@ -260,14 +311,15 @@ // Uart_ReConfigBaudRate(UART_ID_4G,115200); // HAL_UART_Transmit(&huart5, str,17,1000); // Uart_ReConfigBaudRate(UART_ID_4G,9600); - GPS_PowerOff(); - HAL_UART_DeInit(&huart2); - GPIO_InitTypeDef GPIO_InitStruct = {0};// - GPIO_InitStruct.Pin = GPIO_PIN_4; - GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_OD; - GPIO_InitStruct.Pull = GPIO_NOPULL; - GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; - HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); + +// GPS_PowerOff(); +// HAL_UART_DeInit(&huart2); +// GPIO_InitTypeDef GPIO_InitStruct = {0};// +// GPIO_InitStruct.Pin = GPIO_PIN_4; +// GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_OD; +// GPIO_InitStruct.Pull = GPIO_NOPULL; +// GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; +// HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); // HAL_GPIO_WritePin(GPIOB, GPIO_PIN_10, GPIO_PIN_RESET); // while(1) @@ -342,9 +394,11 @@ Error_Handler(); } PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_USART1|RCC_PERIPHCLK_USART2 - |RCC_PERIPHCLK_RTC|RCC_PERIPHCLK_LPTIM1; + |RCC_PERIPHCLK_LPUART1|RCC_PERIPHCLK_RTC + |RCC_PERIPHCLK_LPTIM1; PeriphClkInit.Usart1ClockSelection = RCC_USART1CLKSOURCE_PCLK2; PeriphClkInit.Usart2ClockSelection = RCC_USART2CLKSOURCE_PCLK1; + PeriphClkInit.Lpuart1ClockSelection = RCC_LPUART1CLKSOURCE_PCLK1; PeriphClkInit.RTCClockSelection = RCC_RTCCLKSOURCE_LSI; PeriphClkInit.LptimClockSelection = RCC_LPTIM1CLKSOURCE_LSE; @@ -468,6 +522,145 @@ /* USER CODE BEGIN LPTIM1_Init 2 */ /* USER CODE END LPTIM1_Init 2 */ + +} + +/** + * @brief LPUART1 Initialization Function + * @param None + * @retval None + */ +static void MX_LPUART1_UART_Init(void) +{ + + /* USER CODE BEGIN LPUART1_Init 0 */ + + /* USER CODE END LPUART1_Init 0 */ + + /* USER CODE BEGIN LPUART1_Init 1 */ + + /* USER CODE END LPUART1_Init 1 */ + hlpuart1.Instance = LPUART1; + hlpuart1.Init.BaudRate = 115200; + hlpuart1.Init.WordLength = UART_WORDLENGTH_8B; + hlpuart1.Init.StopBits = UART_STOPBITS_1; + hlpuart1.Init.Parity = UART_PARITY_NONE; + hlpuart1.Init.Mode = UART_MODE_TX_RX; + hlpuart1.Init.HwFlowCtl = UART_HWCONTROL_NONE; + hlpuart1.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE; + hlpuart1.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT; + if (HAL_UART_Init(&hlpuart1) != HAL_OK) + { + Error_Handler(); + } + /* USER CODE BEGIN LPUART1_Init 2 */ + + /* USER CODE END LPUART1_Init 2 */ + +} + +/** + * @brief USART1 Initialization Function + * @param None + * @retval None + */ +static void MX_USART1_UART_Init(void) +{ + + /* USER CODE BEGIN USART1_Init 0 */ + + /* USER CODE END USART1_Init 0 */ + + /* USER CODE BEGIN USART1_Init 1 */ + + /* USER CODE END USART1_Init 1 */ + huart1.Instance = USART1; + huart1.Init.BaudRate = 115200; + huart1.Init.WordLength = UART_WORDLENGTH_8B; + huart1.Init.StopBits = UART_STOPBITS_1; + huart1.Init.Parity = UART_PARITY_NONE; + huart1.Init.Mode = UART_MODE_TX_RX; + huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE; + huart1.Init.OverSampling = UART_OVERSAMPLING_16; + huart1.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE; + huart1.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT; + if (HAL_UART_Init(&huart1) != HAL_OK) + { + Error_Handler(); + } + /* USER CODE BEGIN USART1_Init 2 */ + + /* USER CODE END USART1_Init 2 */ + +} + +/** + * @brief USART2 Initialization Function + * @param None + * @retval None + */ +static void MX_USART2_UART_Init(void) +{ + + /* USER CODE BEGIN USART2_Init 0 */ + + /* USER CODE END USART2_Init 0 */ + + /* USER CODE BEGIN USART2_Init 1 */ + + /* USER CODE END USART2_Init 1 */ + huart2.Instance = USART2; + huart2.Init.BaudRate = 115200; + huart2.Init.WordLength = UART_WORDLENGTH_8B; + huart2.Init.StopBits = UART_STOPBITS_1; + huart2.Init.Parity = UART_PARITY_NONE; + huart2.Init.Mode = UART_MODE_TX_RX; + huart2.Init.HwFlowCtl = UART_HWCONTROL_NONE; + huart2.Init.OverSampling = UART_OVERSAMPLING_16; + huart2.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE; + huart2.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT; + if (HAL_UART_Init(&huart2) != HAL_OK) + { + Error_Handler(); + } + /* USER CODE BEGIN USART2_Init 2 */ + + /* USER CODE END USART2_Init 2 */ + +} + +/** + * @brief USART5 Initialization Function + * @param None + * @retval None + */ +static void MX_USART5_UART_Init(void) +{ + + /* USER CODE BEGIN USART5_Init 0 */ + + /* USER CODE END USART5_Init 0 */ + + /* USER CODE BEGIN USART5_Init 1 */ + + /* USER CODE END USART5_Init 1 */ + huart5.Instance = USART5; + huart5.Init.BaudRate = 115200; + huart5.Init.WordLength = UART_WORDLENGTH_8B; + huart5.Init.StopBits = UART_STOPBITS_1; + huart5.Init.Parity = UART_PARITY_NONE; + huart5.Init.Mode = UART_MODE_TX_RX; + huart5.Init.HwFlowCtl = UART_HWCONTROL_NONE; + huart5.Init.OverSampling = UART_OVERSAMPLING_16; + huart5.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE; + huart5.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT; + if (HAL_UART_Init(&huart5) != HAL_OK) + { + Error_Handler(); + } + /* USER CODE BEGIN USART5_Init 2 */ + + /* USER CODE END USART5_Init 2 */ } @@ -599,111 +792,6 @@ } /** - * @brief USART1 Initialization Function - * @param None - * @retval None - */ -static void MX_USART1_UART_Init(void) -{ - - /* USER CODE BEGIN USART1_Init 0 */ - - /* USER CODE END USART1_Init 0 */ - - /* USER CODE BEGIN USART1_Init 1 */ - - /* USER CODE END USART1_Init 1 */ - huart1.Instance = USART1; - huart1.Init.BaudRate = 115200; - huart1.Init.WordLength = UART_WORDLENGTH_8B; - huart1.Init.StopBits = UART_STOPBITS_1; - huart1.Init.Parity = UART_PARITY_NONE; - huart1.Init.Mode = UART_MODE_TX_RX; - huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE; - huart1.Init.OverSampling = UART_OVERSAMPLING_16; - huart1.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE; - huart1.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT; - if (HAL_UART_Init(&huart1) != HAL_OK) - { - Error_Handler(); - } - /* USER CODE BEGIN USART1_Init 2 */ - - /* USER CODE END USART1_Init 2 */ - -} - -/** - * @brief USART2 Initialization Function - * @param None - * @retval None - */ -static void MX_USART2_UART_Init(void) -{ - - /* USER CODE BEGIN USART2_Init 0 */ - - /* USER CODE END USART2_Init 0 */ - - /* USER CODE BEGIN USART2_Init 1 */ - - /* USER CODE END USART2_Init 1 */ - huart2.Instance = USART2; - huart2.Init.BaudRate = 9600; - huart2.Init.WordLength = UART_WORDLENGTH_8B; - huart2.Init.StopBits = UART_STOPBITS_1; - huart2.Init.Parity = UART_PARITY_NONE; - huart2.Init.Mode = UART_MODE_TX_RX; - huart2.Init.HwFlowCtl = UART_HWCONTROL_NONE; - huart2.Init.OverSampling = UART_OVERSAMPLING_16; - huart2.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE; - huart2.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT; - if (HAL_UART_Init(&huart2) != HAL_OK) - { - Error_Handler(); - } - /* USER CODE BEGIN USART2_Init 2 */ - - /* USER CODE END USART2_Init 2 */ - -} - -/** - * @brief USART5 Initialization Function - * @param None - * @retval None - */ -static void MX_USART5_UART_Init(void) -{ - - /* USER CODE BEGIN USART5_Init 0 */ - - /* USER CODE END USART5_Init 0 */ - - /* USER CODE BEGIN USART5_Init 1 */ - - /* USER CODE END USART5_Init 1 */ - huart5.Instance = USART5; - huart5.Init.BaudRate = 115200; - huart5.Init.WordLength = UART_WORDLENGTH_8B; - huart5.Init.StopBits = UART_STOPBITS_1; - huart5.Init.Parity = UART_PARITY_NONE; - huart5.Init.Mode = UART_MODE_TX_RX; - huart5.Init.HwFlowCtl = UART_HWCONTROL_NONE; - huart5.Init.OverSampling = UART_OVERSAMPLING_16; - huart5.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE; - huart5.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT; - if (HAL_UART_Init(&huart5) != HAL_OK) - { - Error_Handler(); - } - /* USER CODE BEGIN USART5_Init 2 */ - - /* USER CODE END USART5_Init 2 */ - -} - -/** * Enable DMA controller clock */ static void MX_DMA_Init(void) @@ -716,6 +804,9 @@ /* DMA1_Channel2_3_IRQn interrupt configuration */ HAL_NVIC_SetPriority(DMA1_Channel2_3_IRQn, 0, 0); HAL_NVIC_EnableIRQ(DMA1_Channel2_3_IRQn); + /* DMA1_Channel4_5_6_7_IRQn interrupt configuration */ + HAL_NVIC_SetPriority(DMA1_Channel4_5_6_7_IRQn, 0, 0); + HAL_NVIC_EnableIRQ(DMA1_Channel4_5_6_7_IRQn); } @@ -743,9 +834,6 @@ HAL_GPIO_WritePin(GPIOA, GPIO_PIN_4|GPIO_PIN_11, GPIO_PIN_RESET); /*Configure GPIO pin Output Level */ - HAL_GPIO_WritePin(GPIOC, GPIO_PIN_4, GPIO_PIN_RESET); - - /*Configure GPIO pin Output Level */ HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0|GPIO_PIN_10|GPIO_PIN_7, GPIO_PIN_RESET); /*Configure GPIO pin Output Level */ @@ -753,16 +841,16 @@ |GPIO_PIN_6, GPIO_PIN_SET); /*Configure GPIO pin Output Level */ - HAL_GPIO_WritePin(GPIOA, GPIO_PIN_8|GPIO_PIN_12, GPIO_PIN_SET); -HAL_GPIO_WritePin(GPIOA, GPIO_PIN_15, GPIO_PIN_RESET); + HAL_GPIO_WritePin(GPIOA, GPIO_PIN_8|GPIO_PIN_12|GPIO_PIN_15, GPIO_PIN_SET); + /*Configure GPIO pins : PC13 PC9 RADIO_DIO1_Pin */ GPIO_InitStruct.Pin = GPIO_PIN_13|GPIO_PIN_9|RADIO_DIO1_Pin; GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING; GPIO_InitStruct.Pull = GPIO_NOPULL; HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); - /*Configure GPIO pins : RADIO_NSS_Pin RADIO_nRESET_Pin PC4 */ - GPIO_InitStruct.Pin = RADIO_NSS_Pin|RADIO_nRESET_Pin|GPIO_PIN_4; + /*Configure GPIO pins : RADIO_NSS_Pin RADIO_nRESET_Pin */ + GPIO_InitStruct.Pin = RADIO_NSS_Pin|RADIO_nRESET_Pin; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; @@ -776,35 +864,13 @@ /*Configure GPIO pins : PA4 PA8 PA11 PA12 PA15 */ - GPIO_InitStruct.Pin = GPIO_PIN_4; + GPIO_InitStruct.Pin = GPIO_PIN_4|GPIO_PIN_8|GPIO_PIN_11|GPIO_PIN_12 + |GPIO_PIN_15; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); - GPIO_InitStruct.Pin = GPIO_PIN_8; - GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; - GPIO_InitStruct.Pull = GPIO_NOPULL; - GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; - HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); - - GPIO_InitStruct.Pin = GPIO_PIN_11; - GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; - GPIO_InitStruct.Pull = GPIO_NOPULL; - GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; - HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); - - GPIO_InitStruct.Pin = GPIO_PIN_12; - GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; - GPIO_InitStruct.Pull = GPIO_NOPULL; - GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; - HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); - - GPIO_InitStruct.Pin = GPIO_PIN_15; - GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; - GPIO_InitStruct.Pull = GPIO_NOPULL; - GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; - HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); /*Configure GPIO pins : PB0 PB10 PB15 PB5 PB6 PB7 */ GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_10|GPIO_PIN_15|GPIO_PIN_5 @@ -818,6 +884,12 @@ GPIO_InitStruct.Pin = GPIO_PIN_1; GPIO_InitStruct.Mode = GPIO_MODE_INPUT; GPIO_InitStruct.Pull = GPIO_PULLUP; + HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); + + /*Configure GPIO pin : PB12 */ + GPIO_InitStruct.Pin = GPIO_PIN_12; + GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING; + GPIO_InitStruct.Pull = GPIO_NOPULL; HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); /*Configure GPIO pins : SCL_Pin SDA_Pin */ @@ -868,56 +940,12 @@ uint8_t input_5v_flag; uint8_t num; uint16_t sleep_time; -uint16_t chongdian_time; -void Bat_Percent_Poll() -{ - bat_time++; - if(bat_time>BAT_TIME) - { - bat_time=0; - bat_percent=Get_Battary(); - } -} -void Powerled_Poll() -{ - if(!HAL_GPIO_ReadPin(INPUT_5V_GPIO_Port,INPUT_5V_Pin)) - { - powerled = RED; - } -} -void Fangchai_Panduan_Poll() -{ - if(HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_1)) // 设备被拆卸 - { fangchai_flag=1;} - else - { fangchai_flag=0;} - if(fangchai_flag) - { - fangchai_time++; -// if(fangchai_time%2==1&&fangchai_state==0) -// Beep_On(); -// else -// Beep_Off(); -// if(fangchai_state==1||fangchai_state==2) -// Beep_Off(); - } - else - { - if(fangchai_state==2) - { - HAL_NVIC_SystemReset(); - } - fangchai_state=0; - fangchai_time=0; -// Beep_Off(); - } -} - void Sleep_Panduan_Poll() { - if(nomove_count>g_com_map[NOMOVESLEEP_TIME]&&imu_enable) + if(nomove_count>g_com_map[NOMOVESLEEP_TIME]&&imu_enable&&!HAL_GPIO_ReadPin(INPUT_5V_GPIO_Port,INPUT_5V_Pin)) { nomove_flag=1; + mcu_sleep(); } else { @@ -950,73 +978,13 @@ void HAL_LPTIM_CompareMatchCallback(LPTIM_HandleTypeDef *hlptim) { SystemClock_Config(); -// Gps_Chongqi_Poll(); - Powerled_Poll(); -// chongdianmeiyouuwb_time++; -// for(int i=0;i<1000;i++) -// HIDO_TimerTick(); -// HIDO_TimerPoll(); if(delaysleep_count>0) delaysleep_count--; printf("1s唤醒\r\n"); main_time++; - if(HAL_GPIO_ReadPin(INPUT_5V_GPIO_Port,INPUT_5V_Pin)) - { - chongdian_time++; - if(chongdian_time>input5vtime) - {input_5v_flag=1;} - else - {input_5v_flag=0;} - } - else - { - chongdian_time=0; - input_5v_flag=0; - } - if(HAL_GPIO_ReadPin(INPUT_5V_GPIO_Port,INPUT_5V_Pin)&&chongman_flag==0) - { - num++; - if(num>2) - { - num=0; - powerled=LEDOFF; - loraled=LEDOFF; - gpsled=LEDOFF; - uwbled=LEDOFF; - Set4LEDColor_Off(); - } - else - { - Set4LEDColor(powerled,loraled,gpsled,uwbled); - } - } - else - { - Set4LEDColor(powerled,loraled,gpsled,uwbled); - } - Fangchai_Panduan_Poll(); heart_time++; work_time++; nomove_count++; - Sleep_Panduan_Poll(); - Bat_Percent_Poll(); - - if(HAL_GPIO_ReadPin(INPUT_5V_GPIO_Port,INPUT_5V_Pin)&&chongman_flag==0) - { - } - else - { - if(chongman_flag) - {} - else - { - powerled=LEDOFF; - loraled=LEDOFF; - gpsled=LEDOFF; - uwbled=LEDOFF; - Set4LEDColor_Off(); - } - } } /* USER CODE END 4 */ -- Gitblit v1.9.3