STM32——HAL库开发笔记23(定时器4—输入捕获)(参考来源:b站铁头山羊)

定时器有四个通道,这些通道既可以用来作为输入,又可以作为输出。做输入的时候,可以使用定时器对外部输入的信号的时间参数进行测量;做输出的时候,可以使用定时器向外输出精确定时的方波信号。

一、输入捕获 的基本原理

假如有一个从低电压到高电压变化的外部信号,当检测到信号发生变化的时候,计数器CNT的值就会被拍照保存到CCR寄存器中,然后在读取CCR寄存器里面的值,这样我们就知道输入信号在何时发生变化的了,这就是输入捕获的基本原理。

输入捕获也就是捕捉信号变化的时间点,并且保存。

例子:用输入捕获测量脉冲的宽度。

一个脉冲宽度有一个上升沿和一个下降沿。我们让定时器的通道一捕获上升沿,通道二捕获下降沿。首先,闭合时基单元的开关来启动定时器,在启动后CNT的值会递增,加入在递增到4时捕获到上升沿,4这个值会被拍照保存到CCR1中,在CNT = 7时捕获到下降沿,7这个值会被拍照保存到CCR2中,因此脉冲宽度 = (CCR2 - CCR1) *分辨率。分辨率 = CNT每跳一次所需要的时间。

二、其他细节

将画红线的这部分放大就得到了如下图

具体结构如下

以通道一为例,分为四个阶段

首先外部信号从CH1输入,输入滤波滤除输入信号所带的毛刺,从而在节点2得到纯正的信号。

在阶段二,有上升沿脉冲和下降沿脉冲,上升沿脉冲是每检测到一个上升沿就发送一个脉冲,下降沿脉冲类似。

在阶段三,TRC代表从模式控制器,直接:信号来自于通道本身;间接:信号来自于对侧通道

在阶段四,进行分频,分频系数为1,2,4,8。比如在节点5每遇到一个上升沿会产生一个脉冲,那么经过分频之后在节点6需要每遇到两个上升沿才会产生一个脉冲。

在节点6产生的脉冲会触发一个CCx的事件,这个事件发生的时候CNT的值会被拍照保存到CCR寄存器中。这个时候我们只需要把CCR寄存器里面的值读出来,我们就知道信号发生变化的时间点了。全部过程如下图

用输入捕获测量脉冲的宽度的具体过程如下图:

相关推荐
EutoCool43 分钟前
Qt:布局管理器Layout
开发语言·c++·windows·嵌入式硬件·qt·前端框架
茫忙然2 小时前
【WEB】Polar靶场 Day7 详细笔记
笔记
小眼睛FPGA3 小时前
【RK3568+PG2L50H开发板实验例程】FPGA部分 | DDR3 读写实验例程
科技·嵌入式硬件·ai·fpga开发·fpga
今天背单词了吗9803 小时前
算法学习笔记:17.蒙特卡洛算法 ——从原理到实战,涵盖 LeetCode 与考研 408 例题
java·笔记·考研·算法·蒙特卡洛算法
逐花归海.3 小时前
『 C++ 入门到放弃 』- 多态
开发语言·c++·笔记·程序人生
致***锌4 小时前
期权交易完整版教程简介
笔记
棱镜研途4 小时前
学习笔记丨卷积神经网络(CNN):原理剖析与多领域Github应用
图像处理·笔记·学习·计算机视觉·cnn·卷积神经网络·信号处理
学不动CV了5 小时前
ARM单片机OTA解析(二)
arm开发·数据结构·stm32·单片机·嵌入式硬件
majingming1236 小时前
esp8266-01S实现PPM波形
单片机·嵌入式硬件
TESmart碲视7 小时前
USB一线连多屏?Display Link技术深度解析
stm32·单片机·嵌入式硬件·物联网·计算机外设·电脑·智能硬件