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 */