一、输入捕获通道
1、直接模式:Channel1(上升沿触发)
2、间接模式:Channel1(下降沿触发)
二、中断设置、读取数据及处理
1、中断设置
HAL_TIM_Base_Start(&htim5);
HAL_TIM_IC_Start(&htim5, TIM_CHANNEL_1); //获得上升沿捕获的值
HAL_TIM_IC_Start_IT(&htim5, TIM_CHANNEL_2); //获得下降沿捕获的值
2、捕获中断 读取数据及处理
void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim)
{
if(htim==&htim5 && htim->Channel==HAL_TIM_ACTIVE_CHANNEL_2){
Up_Data=HAL_TIM_ReadCapturedValue(htim, TIM_CHANNEL_1);
Down_Data=HAL_TIM_ReadCapturedValue(htim, TIM_CHANNEL_2);
distance=(Down_Data-Up_Data)*0.034/2;
}
}
3、显示
sprintf(message,“distance: %.2fcm”,distance);
lcd_show_string(20, 190, 200, 16, 16, message, WHITE);
输入捕获——测距超声波模块
最新推荐文章于 2025-07-10 14:09:25 发布