STM32F4_定时器输入捕获详解

文章详细介绍了STM32的输入捕获功能,包括输入捕获的原理、模式、相关寄存器配置,以及如何使用库函数配置输入捕获以测量高电平脉冲宽度。重点讨论了TIMx_ARR、TIMx_PSC、TIMx_CCMR1、TIMx_CCER和TIMx_DIER等寄存器在输入捕获中的作用,并提供了实验程序示例。

目录

1. 输入捕获简介

2. 输入捕获框图

3. 输入捕获模式

4. 相关寄存器

4.1 TIMx_ARR、TIMx_PSC

4.2 捕获/比较寄存器1:TIMx_CCMR1

4.3 捕获/比较使能寄存器 TIMx_CCER

4.4 中断使能寄存器 TIMx_DIER

5. 库函数配置输入捕获高电平脉冲宽度

6. 实验程序

6.1 main.c

6.2 IntputCapture.c

6.3 IntputCapture.h


1. 输入捕获简介

        STM32定时器可以分为相关时钟、时基单元、输入捕获、输出比较。在上一节我们已经学习了STM32的输出PWM比较功能,本节我们将学习STM32的输入捕获功能

        输入捕获模式可以用来测量脉冲宽度或者测量频率。STM32F4系列拥有14个定时器,除了TIM6和TIM7,其他定时器都有输入捕获功能。

        输入捕获功能就是通过检测TIMx_CHx上的边沿信号,在边沿信号发生跳变(比如说上升沿/下降沿)的时候,将当前定时器的值TIMx_CNT存放到对应通道的捕获/比较寄存器TIMx_CCRx里面,完成一次捕获。同时还可以配置捕获时是否触发中断/DMA等。

2. 输入捕获框图

        输入捕获的过程:输入阶段对TIx输入进行采样,通过滤波器生成一个滤波信号TIxF,然后通过一个带有极性选择的边沿检测器(极性选择就是确定高电平有效还是低电平有效)生成一个信号(TIxFPx),信号一方面可以用作模式控制器的触发输入,另一方面可以捕获命令,通过分频器分频以后传给捕获/比较寄存器。

3. 输入捕获模式

        在输入捕获模式下,当相应的ICx信号( ICx称作输入捕获、OCx称作输出比较 )检测到跳变沿(上升沿、下降沿)后,将会使用TIMx_CCRx捕获/比较寄存器来存储这一时候计数器的值。发生捕获事件时,会将状态寄存器TIMx_SR的CCXIF位置1,并且这一时刻在使能的状态下可以发送中断或者DMA请求。如果发生捕获事件时CCxIF标志已经处于高位1,那么会将重复捕获标志状态寄存器的CCxOF位置1。可以通过写程序的方式给CCxIF位写入0来将CCxIF位清0,或者读取存储在TIMx_CCRx寄存器中的已捕获数据。

发生输入捕获时

        发生有效跳变沿时,TIMx_CCR1寄存器会获取计数器的值,保存下来。

        将CC1IF标志位置1。如果至少发生了两次连续捕获,但CC1IF标志未被清0,则CC1OF捕获溢出标志位会被置1。

        根据CC1IE位生成中断。

        根据CC1DE位生成DMA请求。

输入捕获测量脉宽的原理

        假定定时器工作在向上计数模式,图中的t1~t2时间,就是我们要测量的高电平时间;首先设置定时器通道x为上升沿捕获,这样在t1时刻会进行第一次捕获,记为CCRx1,记录当前计数器CNT的值;立即清0 CNT,设置定时器通道x为下降沿捕获,在t2时刻,会进行第二次捕获,记录这时的计数器值,记为CCRx2,这样,根据时钟值得到计数器的计数频率,就能算出t1~t2的时间,从而得到高电平脉宽。

        如图,在t1到t2之间,可能会产生N次定时器溢出,为了防止高电平太长,导致数据不准确,需要计算CNT计数的次数:N*ARR+CCRx2,用计数次数乘以CNT的计数周期,就可以得到t2~t1的时间长度。

4. 相关寄存器

4.1 TIMx_ARR、TIMx_PSC

这两个寄存器在过去学习定时器功能时,常常用到;分别是自动重装载值寄存器和时钟预分频寄存器。

4.2 捕获/比较寄存器1:TIMx_CCMR1

捕获/比较寄存器1:TIMx_CCMR1(capture/compare mode register 1)

在PWM输出中,已经介绍了该寄存器的输出位配置;这次我们着重看输入部分:也就是第二行ICxx;

第二行的输入部分的高8位是2通道IC2

评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值