| | |
| | | |
| | | 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 */ |
| | | |
| | |
| | | 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 */ |
| | |
| | | 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) |
| | | { |
| | |
| | | /* USER CODE END SysInit */ |
| | | |
| | | /* Initialize all configured peripherals */ |
| | | // MX_IWDG_Init(); |
| | | MX_GPIO_Init(); |
| | | MX_DMA_Init(); |
| | | MX_RTC_Init(); |
| | |
| | | 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(); |
| | |
| | | // 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) |
| | |
| | | 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; |
| | | |
| | |
| | | /* 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 */ |
| | | |
| | | } |
| | | |
| | |
| | | } |
| | | |
| | | /** |
| | | * @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) |
| | |
| | | /* 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); |
| | | |
| | | } |
| | | |
| | |
| | | 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 */ |
| | |
| | | |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; |
| | |
| | | |
| | | /*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 |
| | |
| | | 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 */ |
| | |
| | | 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 |
| | | { |
| | |
| | | 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 */ |
| | | |