极客秀
搜索

STM32定时器的这些功能你都认识嘛?CubeMX定时器配置详解(2)-输入捕获,强制输出,输出比较

1

前言

上期我们介绍了CubeMX中的定时器中的基础配置以及PWM模式的具体配置。

本期我们介绍剩下其他配置:输入捕获,输出比较,强制输出。



2

输入捕获

Input Capture顾名思义是输入捕获,它的作用有点类似于外部中断+定时器。其基本作用是捕获外部信号或事件,并记录下 ** 该事件发生时定时器的计数值
** 。

利用这个功能我们就可以实现测 ** 脉宽(上升沿和下降沿之间的时间),周期,频率 ** 等参数。

当我们配置一个通道为输入捕获时,会有四个设置,主要需要关心的是:Polarity Selection捕获模式,Rising
Edge即信号上升沿(0->1)触发捕获。

Falling Edge为下降沿触发捕获,BothEdges为双向捕获。

Input Filter为输入滤波器,当我们的输入信号有比较大的噪声或者波动的时候,增加这个值,可以让定时器在延时一段时钟之后再触发捕获( ** 按键消抖
** )。

4

强制输出

之前无论是PWM模式也好,输入捕获8模式也好,都需要依赖于定时器的计数值,而不能直接修改引脚的高低电平状态。

而强制输出模式可以强制控制定时器的输出引脚的状态,而 ** 不依赖于定时器的正常计数或比较操作, ** 允许你通过 软件直接控制定时器的输出引脚
,无论定时器的计数器状态或比较寄存器如何。

这在需要强制输出特定信号(如强制输出高电平或低电平)的时候非常有用,特别是在某些控制系统中,要求在特定情况下强制设置输出状态以实现精确控制。

例如我们在点击控制过程中,如果检测到了电机出现故障,此时无论是停止定时器,还是停止PWM功能输出,如果引脚此时处于高电平状态,那么我们是无法让引脚置低的。必须等定时器计数到另一个状态的时候才能让引脚变低。

如果我们采用Force OutPut,就可以通过软件使得手动拉低引脚,防止电机继续工作在故障状态。

并且模式选择中有着强制拉高和强制拉低两个功能,它的作用是当计数值(CNT)到达设定值时,强制拉高或拉低输出引脚。

它的主要用途包括 紧急停止、同步控制、外部事件处理 等特殊场景,能够提供直接、立即的信号输出控制。

3

比较输出


比较输出无论是输出引脚配置还是参数配置都和PWM输出都比较接近,这里我们着重介绍一下二者的区别。

PWM模式本身并不复杂,是利用CCR和计数值(CNT)的值来实现输出高低电平。主要用于生成周期性信号,控制信号的占空比,通过调节占空比来控制输出的功率或强度。

而输出比较模式则不一样。通道设置为输出比较模式之后,定时器通过比较计数值与预设值,当两者相等时触发输出信号的改变,定时器会 ** 触发一个事件 **
,这个事件后面会说。通常用在占空比比较固定,常用于 生成定时脉冲或在特定时刻产生事件

虽然二者在使用定时器的比较机制上有很多相似性,但它们的核心区别在于 ** 占空比控制和输出信号的应用目标 ** 。

可以看到比较输出的模式比较多,但是仔细分析其功能。他是一个功能非常强大功能。Frozen是冻结引脚输出,引脚不输出高低电平。但是当计数值到达比较值时会触发比较输出的中断回调函数。

Active Level on match是到达比较值时将引脚设置为高电平(不会主动拉低)。Inactive 则是拉低。

Toggle on match 则是翻转引脚电平,利用这个功能我们可以实现方波输出,但是需要注意的是,每次到达比较值时实现电平翻转,因此方 **
波的频率是我们定时器频率的一半,并且占空比没有PWM那么容易控制 ** 。

Froced Active顾名思义就是强制高电平。

因此输出比较更像是一个集大成者,既可以实现PWM模式的方波输出,也可以实现强制输出的强制功能。

写文不易:点点关注 ![](https://pic.qr2c.cn/t/wx_fed/we-
emoji/res/v1.3.10/assets/newemoji/Social.png) 下期介绍五个部分的代码实现。

1.转载请保留原文链接谢谢!
2.本站所有资源文章出自互联网收集整理,本站不参与制作,如果侵犯了您的合法权益,请联系本站我们会及时删除。
3.本站发布资源来源于互联网,可能存在水印或者引流等信息,请用户擦亮眼睛自行鉴别,做一个有主见和判断力的用户。
4.本站资源仅供研究、学习交流之用,若使用商业用途,请购买正版授权,否则产生的一切后果将由下载用户自行承担。
5.联系方式(#替换成@):pm#vimge.com

  相关内容