STM32单片机入门教程---TIM输入捕获

输入捕获简介

  • IC(Input Capture)输入捕获
  • 输入捕获模式下,当通道输入引脚出现指定电平跳变时,当前CNT的值将被锁存到CCR中,即把当前CNT的值读出来,写入CCR中去,可用于测量PWM波形的频率、占空比、脉冲间隔、电平持续时间等参数;
  • 每个高级定时器和通用定时器都拥有4个输入捕获通道;
  • 可配置为PWMI模式,即PWM输入模式,专门为测量PWM频率和占空比设计的,同时测量频率和占空比;
  • 可配合主从触发模式,实现硬件全自动测量;

频率测量

在这里插入图片描述

  • 测频法:在闸门时间T内,对上升沿计次,得到N,则频率fX=N/T 【适合测量高频信号】
    测频法结果更新慢,测量结果是一段时间的平均值,值比较平滑
    频率的定义是:1s内出现多少个重复的周期,频率就是多少Hz 【适合测量低频信号】
  • 测周法:两个上升沿内,以标准频率fc计次,得到N,则频率fx=fc/N
    原理是周期的倒数就是频率
    测周法结果更新更快,结果值会受噪声的影响,波动比较大

N的计次要尽可能大,这样子正负1误差就可以减小

  • 中界频率:测频法与测周法误差相等的频率点,即计次N相同,fm=fc/T的开方;

总结:当待测频率小于中界频率时,用测周法误差更小;当待测频率大于中界频率时,用测频法误差更小;

结构

在这里插入图片描述

异或门的输出逻辑:当三个输入引脚的任何一个有电平翻转时,输出引脚就产生一次电平翻转,主要为三相无刷电机服务;

输入捕获通道

在这里插入图片描述
ICF输入捕获1滤波器:以采样频率对输入信号进行采样,当连续N个值都为高电平,输出才为高电平;连续N个值都为低电平,输出才为低电平;采样频率越低,采样个数N越大,滤波效果越好;
CC1S位对数据选择器进行选择;
ICPS位配置分频器;
CC1E为控制输出使能或失能;
TIFP1还可以通向从模式控制器,从模式是完成自动化操作的利器;

主从触发模式

在这里插入图片描述

  • 主模式可以将定时器内部的信号,映射到TRGO引脚,用于触发别的外设,可以使用复位、使能、更新、比较脉冲和4个OCREF信号作为TRGO的输出;

  • 从模式就是接收其他外设或者自身外设的一些信号,用于控制自身定时器的运行,也就是被别的信号控制;

  • 触发源选择就是选择从模式的触发信号源;

输入捕获基本结构

在这里插入图片描述先把CNT的值转运到CCR里面去,再触发从模式给CNT清零
ARR一般设置为最大值65535,所以CNT最大只能计65535个数;
如果想使用从模式自动清零CNT,只能选用通道1和通道2,因为从模式的触发源选择只有TI1FP和TI2FP;

PWMI基本结构

在这里插入图片描述PWMI模式使用两个通道同时捕获一个引脚,可以同时测量周期和占空比;
CCR1是整个周期的计数值,CCR2是高电平时期的计数值,用CCR2/CCR1就得到占空比;

代码

输入捕获模式测频率

接线图

在这里插入图片描述

库函数

TIM_PrescalerConfig是单独写入PSC的函数;
TIM_ICInit用于初始化输入捕获单元,可以配置一个通道;
TIM_PWMIConfig用于初始化输入捕获单元,可以快速配置两个通道;
TIM_SelectInputTrigger选择输入触发源TRGI;
TIM_SelectOutputTrigger选择输出触发源TRGO;
TIM_SelectSlaveMode选择从模式;
TIM_SetIC1、2、3、4Prescaler分别单独配置通道1、2、3、4的分频器;
TIM_GetCapture1、2、3、4在输入捕获模式下,分别读取4个通道的CCR;
TIM_SetCompare1、2、3、4在输出比较模式下,分别写入4个通道CCR的值;

代码思路

  1. RCC开启时钟,把GPIO和TIM的时钟打开;
  2. GPIO初始化,把GPIO配置成输入模式;
  3. 配置时基单元,让CNT计数器在内部时钟驱动下自增运行;
  4. 配置输入捕获单元,包括滤波器、极性、直连通道还是交叉通道、分频器等参数;
  5. 选择从模式的触发源;
  6. 选择触发之后执行的操作;
  7. 调用TIM_Cmd函数,启动定时器;
    在这里插入图片描述

PWMI模式测频率占空比

接线图

在这里插入图片描述

代码思路

  1. 开启时钟、GPIO和时基单元;
  2. TIM_PWMIConfig的参数传入一个通道的结构体信息后,该函数会自动的把另一个通道初始化成相反的配置,实现两个通道从一个引脚接收输入的功能;【只支持通道1和通道2的配置】
  3. 选择从模式的触发源;
  4. 选择触发之后执行的操作;
  5. 调用TIM_Cmd函数,启动定时器;
    在这里插入图片描述

总结

本节内容在使用手册中主要对应14.3.5输入捕获模式和14.3.6PWM输入模式。
所测量的最低频率是1M/65535,即15Hz;
所测量的最大频率没有明显界限,只不过误差会变大;

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值