2024-04-25 14:29:30 +08:00
|
|
|
|
/* USER CODE BEGIN Header */
|
|
|
|
|
/**
|
|
|
|
|
******************************************************************************
|
|
|
|
|
* @file gpio.c
|
|
|
|
|
* @brief This file provides code for the configuration
|
|
|
|
|
* of all used GPIO pins.
|
|
|
|
|
******************************************************************************
|
|
|
|
|
* @attention
|
|
|
|
|
*
|
|
|
|
|
* Copyright (c) 2024 STMicroelectronics.
|
|
|
|
|
* All rights reserved.
|
|
|
|
|
*
|
|
|
|
|
* This software is licensed under terms that can be found in the LICENSE file
|
|
|
|
|
* in the root directory of this software component.
|
|
|
|
|
* If no LICENSE file comes with this software, it is provided AS-IS.
|
|
|
|
|
*
|
|
|
|
|
******************************************************************************
|
|
|
|
|
*/
|
|
|
|
|
/* USER CODE END Header */
|
|
|
|
|
|
|
|
|
|
/* Includes ------------------------------------------------------------------*/
|
|
|
|
|
#include "gpio.h"
|
|
|
|
|
|
|
|
|
|
/* USER CODE BEGIN 0 */
|
|
|
|
|
|
|
|
|
|
/* USER CODE END 0 */
|
|
|
|
|
|
|
|
|
|
/*----------------------------------------------------------------------------*/
|
|
|
|
|
/* Configure GPIO */
|
|
|
|
|
/*----------------------------------------------------------------------------*/
|
|
|
|
|
/* USER CODE BEGIN 1 */
|
|
|
|
|
|
|
|
|
|
/* USER CODE END 1 */
|
|
|
|
|
|
|
|
|
|
/** Configure pins
|
|
|
|
|
PH0-OSC_IN (PH0) ------> RCC_OSC_IN
|
|
|
|
|
PH1-OSC_OUT (PH1) ------> RCC_OSC_OUT
|
|
|
|
|
*/
|
|
|
|
|
void MX_GPIO_Init(void)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
GPIO_InitTypeDef GPIO_InitStruct = {0};
|
|
|
|
|
|
|
|
|
|
/* GPIO Ports Clock Enable */
|
|
|
|
|
__HAL_RCC_GPIOH_CLK_ENABLE();
|
2024-04-26 10:03:33 +08:00
|
|
|
|
__HAL_RCC_GPIOC_CLK_ENABLE();
|
2024-04-25 14:29:30 +08:00
|
|
|
|
__HAL_RCC_GPIOA_CLK_ENABLE();
|
2024-04-26 10:03:33 +08:00
|
|
|
|
__HAL_RCC_GPIOB_CLK_ENABLE();
|
2024-04-25 14:29:30 +08:00
|
|
|
|
|
2024-04-26 10:03:33 +08:00
|
|
|
|
/*Configure GPIO pin : PC1 */
|
|
|
|
|
GPIO_InitStruct.Pin = GPIO_PIN_1;
|
|
|
|
|
GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING;
|
|
|
|
|
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
|
|
|
|
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
|
|
|
|
|
|
|
|
|
|
/*Configure GPIO pin : PA4 */
|
|
|
|
|
GPIO_InitStruct.Pin = GPIO_PIN_4;
|
2024-04-25 14:29:30 +08:00
|
|
|
|
GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING;
|
|
|
|
|
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
|
|
|
|
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
|
|
|
|
|
|
|
|
|
|
/* EXTI interrupt init*/
|
2024-04-26 10:03:33 +08:00
|
|
|
|
HAL_NVIC_SetPriority(EXTI1_IRQn, 0, 0);
|
|
|
|
|
HAL_NVIC_EnableIRQ(EXTI1_IRQn);
|
2024-04-25 14:29:30 +08:00
|
|
|
|
|
|
|
|
|
HAL_NVIC_SetPriority(EXTI4_IRQn, 0, 0);
|
|
|
|
|
HAL_NVIC_EnableIRQ(EXTI4_IRQn);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* USER CODE BEGIN 2 */
|
2024-04-25 16:58:12 +08:00
|
|
|
|
volatile uint8_t captureFlag = 0;
|
|
|
|
|
extern uint32_t G_StartMillis;
|
|
|
|
|
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
|
|
|
|
|
{
|
2024-04-26 10:03:33 +08:00
|
|
|
|
if (GPIO_Pin == GPIO_PIN_1)
|
2024-04-25 16:58:12 +08:00
|
|
|
|
{
|
2024-04-26 10:03:33 +08:00
|
|
|
|
// <20>?查捕获标志,避免重复捕获
|
2024-04-25 16:58:12 +08:00
|
|
|
|
if (!captureFlag)
|
|
|
|
|
{
|
2024-04-26 10:03:33 +08:00
|
|
|
|
// 处理上升沿触发事<E58F91>?
|
2024-04-25 16:58:12 +08:00
|
|
|
|
G_StartMillis=0;
|
|
|
|
|
G_StartMillis = HAL_GetTick(); //获取当前系统时间
|
2024-04-25 14:29:30 +08:00
|
|
|
|
|
2024-04-25 16:58:12 +08:00
|
|
|
|
// 禁用对应的外部中断,防止再次触发
|
|
|
|
|
HAL_NVIC_DisableIRQ(EXTI2_IRQn);
|
|
|
|
|
captureFlag = 1; // 设置捕获标志为已捕获
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
2024-04-25 14:29:30 +08:00
|
|
|
|
/* USER CODE END 2 */
|