蓝桥杯嵌入式第五课--输入捕获
创始人
2025-05-29 20:56:31

前言

输入捕获的考题十分明确,就是测量输入脉冲波形的占空比和频率,对我们的板子而言,就是检测板载的两个信号发生器产生的信号:

具体来说就是使用PA15和PB4来做输入捕获。

输入捕获原理简介

输入捕获能够对输入信号的上升沿和下降沿进行捕获,并且记录下捕获时定时器的数值以及触发中断。

借用一张图来阐明这个动作:

  1. 边沿触发,产生捕获中断

  1. 中断中读取当前的计数值CCR,并且将计数值清零

  1. 退出中断

因此通过计数值可以计算出高电平持续时间,这里面有一个溢出的问题,对于我们的信号发生器来说,其信号的频率比较高,计数器不会发生溢出,因此不需要考虑。

根据功能分为两类:

  1. 普通输入捕获(只能测频率)

  1. PWM输入模式(可以测频率和占空比)

普通输入捕获

一、CubeMX配置

以及

之后要记得打开中断:

二、Keil软件编写

  1. 开启捕获

HAL_TIM_IC_Start(&htim3,TIM_CHANNEL_1);

第一个参数是定时器句柄,在tim.c中定义,第二个参数是通道:

  1. 编写回调函数

    void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim)
{if(htim->Instance==TIM3)  //判断是哪个定时器触发{if(htim->Channel == HAL_TIM_ACTIVE_CHANNEL_1)  //判断是哪个通道触发{Counter=HAL_TIM_ReadCapturedValue(htim,TIM_CHANNEL_1)+1;//获取计数值+1Freq=1000000/Counter;//计算频率}}
}

进入回调函数后,先判断定时器类型,再判断是哪个通道,完成之后再获取计数值,并且完成频率计算。

PWM输入捕获(双通道模式)

一、CubeMX配置

类似普通单通道输入捕获,这里就是将通道2的输入通道设置为简介模式,并且在下面的配置中,将其捕获的极性设置为下降沿:

双通道的原理借用下图展示:

我们只需要看一个周期,其它周期都一样,这样一来,通道一捕获的值为整个周期的持续时间,通道二捕获的值即为高电平的持续时间,这也为咱们的程序设计提供了依据。

二、Keil软件编写

  1. 开启捕获

HAL_TIM_IC_Start_IT(&htim3, TIM_CHANNEL_1);//开启CH1输入捕获中断        
HAL_TIM_IC_Start_IT(&htim3, TIM_CHANNEL_2);//开启CH2输入捕获中断
  1. 编写中断回调函数

//输入捕获中断回调函数
void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim)
{if(htim->Instance==TIM3){if(htim->Channel == HAL_TIM_ACTIVE_CHANNEL_1){T_Count = HAL_TIM_ReadCapturedValue (htim,TIM_CHANNEL_1)+1;//得到周期值Freq = 1000000 / T_Count;Duty = (float)D_Count/T_Count * 100;}else if(htim->Channel == HAL_TIM_ACTIVE_CHANNEL_2){D_Count = HAL_TIM_ReadCapturedValue (htim,TIM_CHANNEL_2)+1;//得到占空比}                    }    
}

由于我们使用双通道模式,因此无论是启动操作还是回调函数,都必须要写两个通道,这样代码思路就十分明确,便于我们记忆。

总结

想要在比赛中正确地完成输入的捕获,我们需要掌握两点内容:

  1. CubeMX配置,只能通过不断练习来记忆

  1. Keil代码编写,主要记忆思路(启动捕获,中断回调函数编写)

对于程序的思路:

  • 首先启动捕获中断(HAL_TIM_IC_Start();)注意双通道要写两个

  • 其次回调函数编写(void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim))注意双通道时,一个通道测周期,一个通道测高电平持续时间。

相关内容

热门资讯

应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
cad打印线条粗细设置 cad... 004-线型(下)打印样式设置和线型文件使用一、线宽设置方法制图规范里边的线宽要求,我们已经定义好,...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
荼蘼什么意思 岁月缱绻葳蕤生香... 感谢作者【辰夕】的原创独家授权分享编辑整理:【多肉植物百科】百科君坐标:云南 曲靖春而至,季节流转,...