前言
这里用TIM17的Channel1,即PA7来实现脉冲捕获功能。
其实原理都是一样的,比赛里面的555定时器也是一样的测法,只不过是换了个引脚。
一、配置
二、代码
要先开启这个时钟(捕获中断模式)
HAL_TIM_IC_Start_IT(&htim17,TIM_CHANNEL_1);
然后重写中断回调函数
int fre;//频率
int capture_value;//捕获值
//其他代码
void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim)
{if (htim->Instance == TIM17){capture_value = HAL_TIM_ReadCapturedValue(htim, TIM_CHANNEL_1);TIM17->CNT = 0;fre = 80000000 / (80 * capture_value);}
}
这个是计算公式,具体原理略。