设计与开发

单片机输入捕获 快速上手STM32定时器-输入捕获的配置

小编 2024-11-25 设计与开发 23 0

快速上手STM32定时器-输入捕获的配置

输入捕获是STM32单片机定时器的一个功能,其与定时器的输出比较、PWM输出等共用一个引脚和寄存器(寄存器均为CCR)。当为输入时,引脚则为输入模式,输出时引脚则为输出模式。下图为TIM2定时器通道3中的功能配置

定时器通道配置

输入捕获的原理

单片机设定为输入捕获模式时,当单片机捕获的脉冲时,CCR寄存器可立即锁定CNT寄存器中的当前计数值。假定一组脉冲我们设定捕获此脉冲中的上升沿,则我们可以分别读取前后CCR寄存器的数值。读取的两数值相减,再根据定时器的时基,我们即可确定此组输入脉冲的周期。如果采样一个上升沿、一个下降沿,则我们可以确定脉冲的高电平的时长。

输入捕获模式的设定

设定定时器的时基,此时基中的CNT寄存器的计数值将传递给CCR寄存器,是输入捕获的时间基准;设定输入捕获的捕获模式,上升沿捕获、下降沿捕获,若设定上升沿捕获,则捕获上升沿;若下降沿捕获,则捕获下降沿;

捕获模式配置

设定捕获的分频系数,可以设定不分频、2分频、4分频、8分频,四种模式。假定设置为2分频,则信号发出两个脉冲,单片机捕获一次,4分频、8分频则依次类推;

捕获分频系数设定

设定捕获的输入滤波参数。滤波参数为二进制4位,具体功能可依据下图中的数字具体值来进行配置。

滤波器设定1

滤波器设定2

采样频率fDTS与内部时钟fCK_INT的关系,可依据下图来确定。STM32CUBE中设定此参数 的位置为时基中的CDK设定。

DTS与内部时钟fCK_INT的关系

CKD设定

输入捕获的整体设定

输入捕获模式的一般实现思路

一般为开启输入捕获的中断,当捕获到脉冲时进入中断回调函数,读取锁存的CCR寄存器的数值。一般两次进入中断读取后,即可两值相减,得出两脉冲的时间间隔。

开启输入捕获中断HAL库函数:HAL_TIM_IC_Start_IT(TIM_HandleTypeDef *htim, uint32_t Channel);

中断回调函数:HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim);

读取CCR寄存器数值宏:__HAL_TIM_GET_COMPARE(__HANDLE__, __CHANNEL__);

改变捕捉极性函数:__HAL_TIM_SET_CAPTUREPOLARITY(__HANDLE__, __CHANNEL__, __POLARITY__)

输入捕获原理及实验视频: 快速上手STM32定时器(五)-输入捕获原理及实验

红外遥控器与输入捕获,手搓个板子实操一下遥控PWM波。

红外遥控器在我们生活中随处可见,空调、电视、电风扇、遥控小车想必大家都经常用到,这种红外通信方式到底是怎么实现的?

今天我用之前自己手搓的一个开发板来和大家一起从原理到实用学习一下。

我们分两部分来说明,先说发射端原理:其主要是通过两个三极管对输出信号进行调制的。

当输出端信号为高电平时,此时三极管不导通,38K载波信号不进行输出,输出信号维持高电平,红外管不发出信号;

当输出端信号为低电平时,此时三极管导通,38K载波信号得到释放,输出信号被调制为38K载波信号,通过红外管发送。

关于接收端原理,我们以常见的HS0038红外接收管为例说明:

当接收管监测到有38K的红外信号时,就会在OUT引脚输出低电平;当没有38K红外信号时,OUT引脚就输出高电平。

监测、放大、滤波、解调等一系列信号中间转换环节,均由一体化化接收接头HS0038完成。

遥控器的通信协议有很多种,我们以用得比较多的NEC协议来说明。从上面的红外发射接收原理,可以知道有38K载波信号就输出低电平,空闲则输出高电平,所以NEC协议规定:

560微秒载波加上560微秒空闲代表逻辑“0”,560微秒载波加上1.68毫秒空闲代表逻辑“1”。

这是一个用逻辑分析仪抓取的红外接收头输出信号,开头是9ms载波加上4.5ms空闲组成的同步引导码,然后就是8位用户地址码和8位地址反码,

地址码是用于区分不同遥控器的,可以自定义,而数据码和数据反码就是要传输的具体信息,不论是地址反码还是数据反码都是用来提高信号传输可靠性的,避免出错。

如果一直按住遥控器按键不放,在发完一轮数据后,红外接收头的输出不会重复,而是发送连发码标志,连发码由9ms低电平加2.5ms高电平加0.56ms低电平再加上97.94ms高电平组成。

有了信号的发送和接收,接下来就是有效信号的抓取和分析,这就需要用到单片机定时器中的输入捕获功能。

提前设置定时器自动重装载值ARR,定时器从0开始计数,计数到ARR则重新归零,依次循环。

当输入信号,并设定上升沿捕获,则信号在t1时刻遇到上升沿时,记录此时数值存入CCRx1, 并立刻清空计数器,转换通道为下降沿捕获。

此时计数器循环计数,直到信号在t2时刻遇到下降沿时,记录此时数值存入CCRx2,这样就可以根据t1到t2这段时间经历了多少个ARR,再加上CCRx2,

就可以得到高电平持续的时间。

以上理论虽然简单,但真要从电路到板子再到代码都手搓一遍,还是有点花时间的, 不过胜在趣味性强,有兴趣的同学都可以做一做,后面资料会在出的视频中开源出来。

相关问答

单片机 能捕捉高速脉冲吗?如接高速编码器?

能捕捉的。但前提是具体型号的单片机说明书能支持你想捕捉的速度,2来是写的程序效率能不能持续稳定地捕捉能捕捉的。但前提是具体型号的单片机说明书能支持你...

单片机 p3口第二功能是什么(简答题) - 135****4365 的回答 - 懂得

单片机P3口第二功能,各位定义如下:P3.0RXD(串行口输入);P3.1RXD(串行口输出);P3.2/INT0(外部中断0输入);P3.3/INT1(外部中断1输入);P3.4T0(定...

怎么测量pwm信号?

逻辑分析仪可以捕捉和分析数字信号,可以测量PWM信号的高低电平时间和频率。另外,还可以使用微控制器或单片机来测量PWM信号,通过编程读取引脚状态和计时器来计...

单片机 如何才能算掌握好?

对于题主的困惑,想要深入单片机,学得更明白的话,谈谈我是怎么做的吧。1.51入门单片机很好,已经明白寄存器原理就OK,说明程序中的代码对IO口在做什么事情至...

DSP芯片和 单片机 有什么区别?

dSP与单片机的区别1存储器结构不同单片机使用冯.诺依曼存储器结构。这种结构中,只有一个存储器空间通过一组总线(一个地址总线和一个数据总线)连接到处理器核...

各位老铁 求解,基于 单片机 原理的实验室智能控制系统研究有...

[回答]之前和新宸实验室合作过,他们家的产品挺齐全的,可以了解一下诚以经商,信以持业,一个客户,一个样板。设计理念:本公司设计人员都是经过数十年的实验...

怎么样学好51 单片机 ?

单片机的学习绝不仅仅是对一项知识的掌握。想要学好单片机,需要从硬件结构、内部资源、外设应用等几个方面多方位入手。而要想成为一名嵌入式工程师,就要对单片...

将光标锁定在界面文本框的快捷键是什么-ZOL问答

你开了动态输入,只要把“DYN”关了就行,你看下~有用(0)回复CTRL+ALT+DELW...在一般的电路中(单片机),过孔的大小及线宽最好为多少MM(注:是MM)2448浏览4....

Multisim中节点如何标记 - Grace非 的回答 - 懂得

Multisim是美国国家仪器(NI)有限公司推出的以Windows为基础的仿真工具,适用于板级的模拟/数字电路板的设计工作。它包含了电路原理图的图形输入、电...

计步器制作方法有哪些?- 一起装修网

一起装修网问答平台为您提供计步器制作方法有哪些?的相关答案,并为您推荐了关于计步器制作方法有哪些?的相关问题,一起装修网问答平台:装修问题,因我而止。

猜你喜欢