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寄存器里面的值读出来,我们就知道信号发生变化的时间点了。全部过程如下图

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

相关推荐
Demons_kirit1 小时前
CTFHub 信息泄露通关笔记:Git泄露 Log - 教程
笔记·git·网络安全
三佛科技-134163842121 小时前
20W~200W副边反馈SSR隔离方案HN1562+碳化硅MOS(含光耦817,431)
单片机·嵌入式硬件·物联网·智能家居·pcb工艺
xhyu612 小时前
【学习笔记】图像质量评估方法 (5.生成图像是否符合用户要求)
笔记·学习·计算机视觉
恒锐丰科技林技术员2 小时前
EG2103 高压 MOS/IGBT 驱动芯片解析:半桥驱动的高性价比之选
经验分享·嵌入式硬件·硬件工程
2601_961146203 小时前
实验室用等离子表面处理设备处理新能源汽车塑料件的一点记录
笔记·汽车·设备
知产xiao_xin3 小时前
专利主体及权利归属
经验分享·笔记·知识产权
学电子她就能回来吗3 小时前
LeetCode Hot 100|普通数组专题学习笔记(零基础版)
笔记·算法·leetcode
2601_965384263 小时前
从微生态与流体力学视角看:“口水臭”的系统级成因与清洁边界
经验分享·笔记
卿卿的产品经理日记4 小时前
【AI产品经理实战】Day 38|try-except 踩坑实录:报错是数据
人工智能·笔记·python·学习·产品经理
_Ningye5 小时前
STM32 — 11.5 硬件SPI读写W25Q64
stm32·单片机·嵌入式硬件