STM32外设学习--TIM定时器--输入捕获---测频办法。

news/2025/12/6 12:43:54/文章来源:https://www.cnblogs.com/tlnshuju/p/19315475

STM32外设学习--TIM定时器--输入捕获---测频办法。

2025-12-06 12:39  tlnshuju  阅读(0)  评论(0)    收藏  举报

上两次我们学习了定时器的定时中断,定时模式,输出比较模式。外部时钟,内部时钟。还有PWM。这次我们来看输入捕获模式。首先我们先来简单看一下输入捕获模式。

一. 输入捕获工作原理

输入捕获的核心是:当检测到定时器通道引脚上出现指定的电平跳变(如上升沿或下降沿)时,当前定时器计数器(TIMx_CNT)的值会被自动锁存到对应的捕获/比较寄存器(TIMx_CCRx)中。通过记录两次跳变沿对应的CNT值,结合定时器的计数频率,就可以计算出时间间隔。

根据测量需求,通常有两种工作模式:

工作模式测量目标实现方式
单通道捕获频率或脉宽单个通道需在上升沿和下降沿捕获模式间切换,并配合中断处理,可测量频率或脉宽-5。
PWM输入模式频率和占空比TIMx_CH1或TIMx_CH2支持。一个信号同时连接到两个捕获通道(如IC1和IC2),分别设置为上升沿和下降沿触发。结合从模式,可自动复位CNT,一次捕获即可获得周期和占空比-4。

二. 输入捕获配置步骤

以下是配置STM32F103C8T6输入捕获功能的一般步骤,以使用库函数为例:

  1. 开启时钟

    • 使能所用定时器(如TIM2、TIM3、TIM5等)的时钟,通常通过RCC_APB1PeriphClockCmd()函数实现。

    • 使能对应GPIO端口的时钟(如GPIOA),通过RCC_APB2PeriphClockCmd()函数实现

  2. 初始化GPIO

    • 将用于捕获的GPIO引脚(例如TIM2_CH1对应PA0)设置为复用机制上拉/下拉输入 模式。

  3. 初始化定时器时基单元

    • 配置TIM_TimeBaseInitTypeDef结构体成员,包括预分频器(TIM_Prescaler)、自动重装载值(TIM_Period)、计数模式等,以设定CNT的计数频率和计数范围。

  4. 配置输入捕获通道

    • 配置TIM_ICInitTypeDef结构体,这是核心步骤:

      • TIM_Channel:选择捕获通道(如TIM_Channel_1)。

      • TIM_ICPolarity:设置捕获极性(上升沿/下降沿)。

      • TIM_ICSelection:设置输入选择,通常直连(TIM_ICSelection_DirectTI)。

      • TIM_ICPrescaler:设置捕获分频,通常不分频(TIM_ICPSC_DIV1)。

      • TIM_ICFilter:设置滤波器参数,用于抑制毛刺。

  5. 配置中断/DMA(可选)

    • 如果需要,使能捕获比较中断(TIM_IT_CCx)和更新中断(TIM_IT_Update)。

    • 设置NVIC,设置中断优先级并编写中断服务函数。

  6. 使能定时器

    • 调用TIM_Cmd()使能定时器,开始计数。

三.输入捕获的简介

跟我们输出比较做一下对比。

也就是这里CNT和CCR是作为比较电路的输入。根据CNT和CCR的大小关系,从引脚输出,高,低电平。

输入捕获的话就是,一旦这四个通道,有边沿的变化,那么输入滤波和边沿检测就会发现这个变化,让输入捕获电路产生动作。让当前CNT的值,锁存到CCR中,和外部中断差不多,外部中断是向CPU申请中断,然而输入捕获是控制后续电路。

对比输出比较,输出比较引脚是输出端口,是根据CNT和CCR的大小关系来进行输出动作

输入捕获引脚是输入端口。是接收到输入信号,让当前CNT的值,锁存到CCR中。

来到原理图我们就可看到,输入捕获电路是我们左边的一部分。右面就是我们了解过的,输出比较部分,行看到,4个输入捕获,和4个输出比较通道,共用4个CCR寄存器。另外他们的

CH1-CH4四个通道引脚也是共用的。于是对应同一个定时器,输入捕获和输出比较,只能采用其中一个,不能同时采用。

拿输入捕获电路来说,通用定时器和高级定时器,他们的通道是一样的

剩下的两个功能非常巧妙,把这两个功能组合起来,测量频率和占空比就可以硬件全自动执行。软件不需任何干预,也不需要进行中断。得测量时候,直接读取CCR的值就可以了,极大的减轻了软件的压力。

四.频率是如何测量的

1.频率的解释

越往左频率越高,越往右频率越低。这里信号都是只有高低电平的数字信号。对于STM32测频率而言,也只能测量数字信号。如果需要测量一个正弦波,那还应该搭建一个信号预处理电路,最方便的就是用运放,搭建一个比较器。把正弦波变为数字信号,再输入给我们的STM32就可以了。

倘若测量的电压非常高,那还需要考虑一下,隔离的问题。

2.测频法

在闸门时间T内,对上升沿计次(计次下降沿也可以,只是极性不同)的到N。

待测信号的频率就是fx = N/T。

自定义一个闸门时间T,通常为1S。在1S时间内对信号进行计次,每来一个上升沿记次+1,每来一个上升沿就是来了一个周期信号。所以在1S时间内,来了多少个周期,那么他的频率就是多少Hz。这符合频率的定义,频率的定义就是1S内出现了多少个重复的周期。

3.测周法

测周法就是,周期的倒数就是频率,我们如果能测出一个周期的时间,那么周期在取倒数就是我们的频率了。

通过大家捕获两个上升沿,接着测量一下,这两个上升沿之间持续的时间。就能够了,实际上也是定时器计次,我们使用一个已知的标准频率fc计次时钟来驱动计数器,然后从一个上升沿开始记,计数器从0开始,一直记到下一个上升沿。记一个数的时间是1/fc。记N个数,时间就是N/fc。N/fc就是周期再去一个倒数,就得到了频率。fx=fc/N。

4.区别以及优缺点

1.测频法适合高频率信号,测周法适合低频率信号。

2.测频法在闸门时间内,最好要多出现一些上升沿。计数数量多一些,这样有助于减少误差。在计次N很少时误差会非常大。

3.测周法要求频率低一些。低频信号,周期比较长,计次就会比较多。有助于减小误差。

4.测频法测的是闸门时间内的多个周期,所以自带一个均值滤波。如果在闸门时间内波形有变化,那么得到的实际上是这个闸门时间内的平均频率,假设1S为闸门时间,那么1S才更i性能一次,所以测频法更新时间慢,测量结果是一段平均值,值比较平滑。

几百--几千赫兹。所以测周法更新结果块。缘于只测量一个周期,那么受噪声影响,波动比较大。就是5.测周法,测量一个周期就能出现结果,所以结果的速度取决于待测信号的频率。一般而言待测信号都

这两种途径的对比。两种测量的手段N都要大一些,N越大,测量的误差越小。就是这就

5.方法的选择

我们了解到,高频适合测频法,低频适合测周法,那么多少频率算高,多少频率算低呢

这里就要引入我们中界频率的概念

当待测信号小于中界频率时测周法误差小,当待测信号大于中介频率时,测频法误差小。

五.用单片机实现

1.电路

通过为了三项无刷电机服务的。就是我们能够看到这里有一个三通道的异或门,异或门是当三个引脚的电平有任意一个反转时候,就会输出低电平。之后输出通过素材选择器,进入到输入捕获通道1,数据选择器倘若选择上面的。那么输入捕获1的通道,就是三个引脚的异或值。假如选择下面的一个,那么异或门就没有用,输出是下面各自的通道。设计该异或门其实还

无刷电机有三个霍尔传感器,检测转子位置,可以根据转子的位置进行换向。有了异或门就可以在前三个通道接上无刷电机的霍尔传感器。继而该定时器,就作为无刷电机的接口定时器。去驱动换向电路工作。

输入信号过来,介入了输入滤波器,边沿检测器,可以对信号进行滤波,避免一些毛刺信号误触发。边沿检测器可以检测,高电平触发,还是低电平触发。

其实它设计了两套滤波的选择,第一套经过滤波和极性选择,输入给通道1,第二套经过滤波和极性选择,得到TI1FP2。

输入给下面,通道2的后续电路。同理下面的信号进来,也可以有一路信号去到通道一。

这样做的目的,可以灵活的更改电路,比如想要CH1作为输出,一会要以CH2作为输出。

PWMI模式的经典结构。就是又可能把一个引脚的输入,映射给两个输出比较单元。这也

2.解释

通过因为这样子能够一路启用上升沿触发,用来捕获周期,第二个通道,运用下降沿触发,用来捕获占空比。两个通道同时对一个引脚进行捕获,就可能同时测量频率和占空比。

后面经过预分频之后,就可以触发捕获电路,每来一个信号CNT的值就会向CCR转运一次,转运的同时会发生一个捕获事件,可以用来中断。

3.主从触发模式

主模式能够将定时器内部的信号,映射到TRGO引脚,用于触发别的外设,所以这部分叫主模式

从模式就是接收其他外设,或者自身外设的一些信号。用于控制自身定时器的运行,也就是被别的信号控制。触发源选择,就是选择从模式的触发源的。可以认为是从模式的一部分,触发源选择,选择指定的一个信号,得到TRGI,TRGI去触发从模式。从模式可能在后面的列表里,选择一个来进行执行。

如果想要完成我们刚才的任务,让TI1FP1自动触发CNT清零,那么触发源选择,就可以选择TI1FP1,映射到TRGI,然后执行reset操作。这样TI1FP1的信号就可以自动触发从模式,然后从模式就会自动清零CNT的值。实现硬件全自动清零。

行打开手册,然后看看各种主模式的解释。如果想要实现定时器的级联,就可以选择一个定时器主模式,输出更新信号到TRGO。另一个定时器,选择上一个定时器,触发从模式。从模式选择,执行外部时钟模式1操作,这样子就能实现定时器的级联了。

4.输入捕获基本结构

我们测周法用来计数记时的东西。就是这个结构我们只使用了一个通道,所以只能用来测量频率。右上角是时基单元,我们把时基单元设置好,随后启动定时器。那么CNT就会在预分频之后的时钟驱动下,不断自增。这个CNT就

我们驱动CNT的标准频率fc。就是经过预分频之后的时钟频率,就

标准频率=72MHz/预分频系数

继而下面输入捕获通道1的I/O口输入一个方波信号。经过滤波器和边沿检测,选择TI1FP1为上升沿触发。之后输入选择直连通道,分频器选择不分频,当TI1FP1出现上升沿之后,CNT当前计数值,转运到CCR1里面,同时触发源选择TI1FP1为触发信号,从模式选择复位操作,这样TI1FP1的上升沿,也会借助上面的通道,去触发CNT清零0。但是有先后顺序,先转移CNT的值,在进行CNT的清零,这就是主从的原因,先主后从。

5.波形讲解

从模式自动执行的。之后一个周期内,CNT在基准时钟的信号下,不断自增。直到下一个上升沿到来。就是在这里我们可以看到信号出现一个上升沿时候,CCR1=CNT,就是把CNT的值放在CCR1里面。然后CNT=0,计数器清零。这

信号的频率。这里我们不读取的话整个电路自动测量,不占用软件资源。就是这里CNT的计数值,就是我们的N,fc/N就

有上线的,一般大家设置为最大,65535,那么CNT最大也只能计65535个数。如果信号频率太低,CNT可能会溢出。就是值得注意的是,ARR的值

还有就是触发源从模式的选择,这里允许看到,只有TI1FP1,TI2FP2没有3和4.

所以如果使用从模式,自动清零,CNT,就只能选择通道1和通道2.对于通道3和通道4,就只能开启捕获中断,在中断里手动清零0。过这样子,程序就会处于频繁的中断状态,比较消耗软件资源。

6.PWMI的基本结构

这里使用了两个通道,同时捕获一个输入引脚,能够同时测量频率和占空比。

首先TI1FP1设置上升沿触发,触发捕获和CNT清零。正常的捕获周期,这时候我们再来一个TI1FP2调整为下降沿触发,凭借交叉通道,去触发通道2的捕获单元。

这时会发生,上升沿,CCR1捕获,同时清零CNT的值。之后CNT一直++,直到下降沿到来触发CCR2捕获,所以这时候CCR2的值就是从信号的上升沿,到下降沿的计数值,就是高电平期间的计数值,CCR2捕获,并不会触发CNT的清零,因而CNT继续++,直到下一个上生沿到来,触发CCR1捕获,CNT清零。这样子执行之后CCR1就是一整个周期的计数值,CCR2就是高电平期间的计数值,我们用CCR2/CCR1就是占空比了。

这就是PWMI模式,使用两个通道,来进行捕获频率和占空比的思路。

通过这里还能够两个通道同时对第一个引脚进行捕获,这样子通道二的前面部分就没有用到。

到这里我们输入捕获就结束了,下一篇博客我们来学习代码部分。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/990105.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025 年 12 月张力器厂家权威推荐榜:伺服/磁力/张力控制器/张力计/放线架等精密设备源头实力解析

2025 年 12 月张力器厂家权威推荐榜:伺服/磁力/张力控制器/张力计/放线架等精密设备源头实力解析 在现代精密制造领域,尤其是在电子元器件、线缆加工、纺织化纤、光纤光缆等行业,张力控制是决定产品质量、生产效率和…

Cisco Secure Firewall Threat Defense Virtual 7.7.11 - 思科下一代防火墙虚拟设备 (FTDv)

Cisco Secure Firewall Threat Defense Virtual 7.7.11 - 思科下一代防火墙虚拟设备 (FTDv)Cisco Secure Firewall Threat Defense Virtual 7.7.11 - 思科下一代防火墙虚拟设备 (FTDv) Firepower Threat Defense (FTD)…

Cisco Firepower 4100 Series FTD Software 7.7.11 - 思科 Firepower 威胁防御系统软件

Cisco Firepower 4100 Series FTD Software 7.7.11 - 思科 Firepower 威胁防御系统软件Cisco Firepower 4100 Series FTD Software 10.0.0 & ASA Software 9.24.1 Firepower Threat Defense (FTD) Software - 思科…

PbootCMS邮件配置修改发件人信息

在 PbootCMS 中修改邮件配置的发件人信息以及相关提示文字,可以通过以下步骤实现:1. 修改发件人信息 根据提供的上下文,发件人信息相关的代码分布在多个文件中。以下是具体操作步骤: 涉及文件及路径/apps/home/con…

2025年12月刀模厂家权威推荐榜:雕刻刀模/蚀刻刀模/激光刀模/圆压圆刀模/夹治具/精密模具,匠心工艺与高效定制解决方案深度解析

2025年12月刀模厂家权威推荐榜:雕刻刀模/蚀刻刀模/激光刀模/圆压圆刀模/夹治具/精密模具,匠心工艺与高效定制解决方案深度解析 在现代精密制造与模切工业领域,刀模作为实现材料精准成型与分离的核心工具,其技术水平…

湖南人必看!不止滑雪!七星岭国际滑雪场:萌宠+俄式表演+雪乡场景全打卡

随着冬季来临,滑雪运动凭借独特的速度与激情,成为年轻人追捧的热门户外选择。据马蜂窝数据显示,近一周“滑雪”相关搜索平均热度涨幅超100%,冰雪旅游热潮席卷全国。对于湖南及周边地区的滑雪爱好者而言,无需远行,…

findViewById 所有可能的 null

findViewById 所有可能的 nullfindViewById 所有可能的 null 情况1 MainActivity.kt package io.github.helloxmlimport android.content.Context import android.content.Intent import android.os.Bundle import and…

pbootcms如何实现留言内容自动发送到QQ邮箱(PbootCMS留言自动发送至QQ邮箱的实现方法)

1. 准备工作 将准备工作以列表形式呈现,方便用户快速了解需要完成的任务。准备两个QQ邮箱一个用于发件 一个用于收件开通服务发件邮箱需开通以下服务:POP3/SMTP服务 IMAP/SMTP服务获取邮箱授权码(非QQ登录密码)2. …

从资质、工艺到口碑严格筛选,2025年这份上海装修公司精选榜单请收好

装修的品质,始于企业的资质,成于施工的工艺,终于业主的口碑 —— 这是 2025 年上海装修公司精选榜单的筛选核心逻辑。为避免业主被 “虚假宣传” 误导,我们从企业资质合规性、施工工艺标准化、服务口碑真实性三大维…

网站打开提示“No input file specified.”

可能原因根目录存在 .user.ini 文件导致冲突。 伪静态规则配置错误。解决方法删除根目录下的 .user.ini 文件: rm /path/to/website/.user.ini检查伪静态规则是否正确(参考官方文档)。 如果问题仍未解决,尝试重启 …

Cisco Firepower 1000 Series FTD Software 7.7.11 - 思科 Firepower 威胁防御系统软件

Cisco Firepower 1000 Series FTD Software 7.7.11 - 思科 Firepower 威胁防御系统软件Cisco Firepower 1000 Series FTD Software 10.0.0 & ASA Software 9.24.1 Firepower Threat Defense (FTD) Software - 思科…

VMware vSAN 9.0.1.0 - 数据中心存储虚拟化

VMware vSAN 9.0.1.0 - 数据中心存储虚拟化VMware vSAN 9.0.1.0 - 数据中心存储虚拟化 vSAN 9 with Express Storage Architecture 请访问原文链接:https://sysin.org/blog/vmware-vsan-9/ 查看最新版。原创作品,转载…

2025厨余处理器怎么选?十大热门款处理器推荐

在2025年的厨余垃圾处理器市场中,面对众多品牌与型号,如何选择一台真正适合中餐厨房的高效、静音、防堵设备,已成为许多家庭关注的焦点。本文基于五大关键选购要点,结合十大热门品牌的综合对比,为您梳理出一份清晰…

PbootCMS在阿里云主机上邮件发送失败:服务器已经禁用stream_socket_client和fsockopen

报错原因报错提示明确指出:stream_socket_client 和 fsockopen 函数被禁用。 这两个函数通常用于通过 SMTP 协议发送邮件,如果都被禁用,邮件发送功能将无法正常工作。环境变化你提到刚更换了主机到阿里云,这可能是…

PbootCMS模版制作:当天发布的文章显示红色的方法

PbootCMS模版制作:当天发布的文章显示红色的方法{pboot:if([list:date style=m-d]==<?php echo date("m-d");?>)}style="color:red"{else}{/pboot:if}扫码添加技术【解决问题】专注网站运…

2025 年 12 月制氮碳分子筛厂家权威推荐榜:高效吸附与长寿命性能的工业节能之选

2025 年 12 月制氮碳分子筛厂家权威推荐榜:高效吸附与长寿命性能的工业节能之选 在工业气体分离领域,尤其是变压吸附(PSA)制氮技术中,碳分子筛作为核心吸附材料,其性能直接决定了氮气纯度、设备能耗、运行稳定性…

揭秘!5大正规有彩片专利艺术漆品牌,打造梦幻家居新体验

艺术漆品牌实力大揭秘:荷兰蔻帝领衔,打造高品质家居美学 在艺术漆市场蓬勃发展的今天,消费者对环保、品质与个性化的需求日益提升。如何从众多品牌中挑选出真正值得信赖的产品?本文以行业标杆品牌荷兰蔻帝为核心,…

2025年黑龙江艺考培训校长能力排行榜:姜伟博校长的决策能力

为助力艺考生及家长精准选择靠谱的艺考培训平台,本文聚焦校长核心能力维度(含决策前瞻性、团队凝聚力、口碑公信力),结合机构办学成果、师生满意度、行业影响力等指标,评选出2025年黑龙江地区艺考培训领域校长能力…

PbootCMS授权码设置,PbootCMS如何绑定多个域名

1. 授权码的作用PbootCMS通过授权码绑定域名,确保程序在指定域名下合法使用。 每个域名需要一个独立的授权码。2. 绑定多个域名的设置方法如果需要绑定多个域名,可以在后台设置多个授权码。 设置方式:将多个授权码用…

后台图片上传提示“上传失败:存储目录创建失败!”

可能原因静态资源目录(static 文件夹)权限不足。解决方法给根目录下的 static 文件夹设置权限为 755 或 777。bashchmod -R 755 /path/to/website/static推荐使用 755 权限以兼顾安全性和功能性。扫码添加技术【解决…