1.原理图
2.配置
3.代码
关键函数
HAL_TIM_IC_Start_IT(&htim3,TIM_CHANNEL_1)
HAL_TIM_IC_CaptureCallback(TIM_HandTypeDef *htim)//回调函数
HAL_TIM_GET_COUNTER(&htim3)
__HAL_TIM_SetCounter(&htim3,0)
HAL_TIM_IC_Start_IT(&htim2,TIM_CHANNEL_1)
HAL_TIM_IC_Start_IT(&htim3,TIM_CHANNEL_1)
int r39=0,r40=0;
void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim)
{
if(htim==&htim2)
{
int temp = __HAL_TIM_GetCounter(&htim2);//temp的值为一秒钟PWM波的次数
__HAL_TIM_SetCounter(&htim2,0);
r40 = 1000000/temp;
//1000000相当于将1秒钟分成1000000份,求得的结果相当于PWM的周期的倒数。假如说一秒钟分成10份,执行一次需要2份,10/2=5,也就是一秒钟可以执行5次,频率为5Hz
}
else if(htim==&htim3)
{
int temp = __HAL_TIM_GetCounter(&htim3);
__HAL_TIM_SetCounter(&htim3,0);
r39 = 1000000/temp;
}
}