正点原子--STM32通用定时器学习笔记(2)

1. 通用定时器输入捕获部分框图介绍

捕获/比较通道的输入部分(通道1)

输入通道映射CC1S[1:0]→采样频率CKD[1:0]→滤波方式IC1F[3:0]→边沿检测方式CC1P→捕获分频ICPS[1:0]→使能捕获CC1E

输入部分对相应的TIx输入信号采样,并产生一个滤波后的信号TIxF。之后带极性选择的边缘检测器产生一个信号(TIxFPx),它可以作为从模式控制器的输入触发或者作为捕获控制。该信号通过预分频进入捕获寄存器(ICxPS)。

按照上述配置流程,依次配置对应的寄存器。

首先配置输入通道映射CC1S[1:0],配置为01从TI1FP1线路输入,配置为10从TI2FP1线路输入,配置为11从TRC线路输入,如下图所示。

接下来设置采样频率:控制寄存器 1(TIMx_CR1)的CKD[1:0] ⬇⬇⬇设置滤波方式选择: 捕获/ 比较模式寄存器 1(TIMx_CCMR1)的输入捕获部分⬇⬇​​​​​​​⬇​​​​​​​选择边沿检测方式: 捕获/ 比较使能寄存器(TIMx_CCER)⬇​​​​​​​⬇​​​​​​​⬇​​​​​​​

设置输入通道映射: 捕获/ 比较模式寄存器 1(TIMx_CCMR1)⬇​​​​​​​⬇​​​​​​​⬇​​​​​​​

使能捕获: 捕获/ 比较使能寄存器(TIMx_CCER)

以上配置好后所产生的IC1PS来到捕获/比较通道1的主电路部分,也就到了下一部分的学习。

捕获/比较通道1的主电路---输入部分

上图深灰色部分为输出部分,我们不看它。

①配置CC1S为输入,经过或门1输出信号1;

②配置捕获使能→1,以及捕获分频后的信号→1,两者都为1,经过与门1后输出为1(这里的"捕获到信号"和"捕获使能"是通过硬件产生,也可通过软件产生捕获事件,两者二选一)

或门1 输出信号1,与门1 输出信号1 经过 或门2 输出信号也为1,两者都为1,那么与门2 输出为1,会触发捕获事件,此时会把计数器的值转移到捕获/比较影子寄存器 ,由于捕获/比较影子寄存器 不可直接访问,便会再次把数值转移到捕获/比较预装载寄存器(CCRx1~4)让用户读取,什么时候转移呢?当CCR1读操作完成时产生信号1,经过与门3输出1,这时就会把影子寄存器的值转移到预装载寄存器中,程序员直接读取CCR1寄存器的值就相当于直接获取了计数器的值。

举个栗子,假设通道1配置为上升沿触发,当捕获到上升沿信号产生捕获事件,计数器里的数值会转移到捕获/比较影子寄存器,再转移到捕获/比较预装载寄存器,这时读取CCR1的值记为CNT1,当捕获到上升沿时通过硬件立刻配置为下降沿触发,当捕获到下降沿后获取对应的计数值为CNT2,CNT2-CNT1的值就是一个高电平的计数个数,通过计数个数以及定时器计数频率就可以算出高电平持续的时间。

2. 通用定时器输入捕获脉宽测量原理


相关推荐
@小匠1 分钟前
Read Frog:一款开源的 AI 驱动浏览器语言学习扩展
人工智能·学习
炽烈小老头6 小时前
【 每天学习一点算法 2026/04/12】x 的平方根
学习·算法
阿杰学AI7 小时前
AI核心知识115—大语言模型之 自监督学习(简洁且通俗易懂版)
人工智能·学习·ai·语言模型·aigc·监督学习·自监督学习
九英里路7 小时前
OS学习之路——动静态库制作与原理
linux·学习·操作系统·unix·进程·编译·动静态库
red_redemption8 小时前
自由学习记录(160)
学习
南無忘码至尊8 小时前
Unity学习90天-第2天-认识Unity生命周期函数并用 Update 控制物体移动,FixedUpdate 控制物理
学习·unity·游戏引擎
报错小能手9 小时前
ios开发方向——swift错误处理:do/try/catch、Result、throws
开发语言·学习·ios·swift
Z.风止9 小时前
Large Model-learning(3)
人工智能·笔记·后端·深度学习
LX567779 小时前
传统销售如何系统学习成为AI智能销售顾问?认证指南
人工智能·学习
做cv的小昊9 小时前
【TJU】应用统计学——第五周作业(3.1 假设检验的基本思想、3.2 单个正态总体参数的假设检验)
学习·线性代数·机器学习·数学建模·矩阵·概率论·tju