所用工具
STM32F103C8T6最小系统板系统板
cubeMx
keil V5.32
stm32F1xxHAL库
CubeMx配置
选择高速时钟晶振
![](https://img-blog.csdnimg.cn/img_convert/229c8af63bf29ffa753af21c048e3182.png)
设置debug
![](https://img-blog.csdnimg.cn/img_convert/fe566affd350e10672005821793b31f9.png)
使能led推挽输出引脚
![](https://img-blog.csdnimg.cn/img_convert/e7c2c076289a7e1fbb5e43df591aa52d.png)
设置高级定时器1,开启上升沿输入捕获
![](https://img-blog.csdnimg.cn/img_convert/2878a4f107186f133a4ab1862daaca5f.png)
使能定时器输入捕获引脚
![](https://img-blog.csdnimg.cn/img_convert/688b656be96c0a82110158c089113a17.png)
开启定时器1的中断
![](https://img-blog.csdnimg.cn/img_convert/29bf6129302b22fd4e453ac55882f769.png)
设置定时器引脚下拉电阻
![](https://img-blog.csdnimg.cn/img_convert/f0dbb9a5c9cc534de9259bc59d04fef0.png)
使能一个推挽输出引脚,用于提供推挽输出所需的电平变化
keil部分
开启定时器中断和输入捕获中断
/* USER CODE BEGIN 2 */
HAL_TIM_Base_Start_IT(&htim1);
HAL_TIM_IC_Start_IT(&htim1, TIM_CHANNEL_3);
/* USER CODE END 2 */
输入捕获中断回调函数
void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim)
{
if(htim==&htim1)
{
HAL_GPIO_TogglePin (GPIOC,GPIO_PIN_13);
}
}
写在while中,提供捕获所需的高低电平变化
HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_15);
HAL_Delay(500);