stm32学习——定时器部分3(输入捕获)

一、输入捕获简介

IC(Input Capture)
输入捕获模式下,当通道输入引脚出现指定的电平跳变时,当前的CNT值就会被锁存到CCR中。
可用于测量PWM波形的频率、占空比、脉冲间隔、电平持续时间等参数。

频率测量的方法有:
1.测频法:在闸门时间T内测量上升沿(或下降沿)的个数N,则 f=N/T;
2.测周法:在两个上升沿(或下降沿)之间,以一个参考频率 F 计次,得到N,则频率 f=F/N;
测频法适用于频率较高的pwm波形,测周法适用于频率较低的pwm波形,对于介于两者之间的pwm波形用中介频率来表示。
中界频率:测频法与测周法误差相等的频率点,f=(F/T)^0.5

二、输入捕获通道

第一部分:滤波器对输入波形进行采样,为防止出现干扰信号,所以只有连续计次都是有效电平才输出1。
输入捕获滤波器IC1F[3:0],这个用于设置采样频率和数字滤波器长度。其中fCK_INT是定时器的输入频率,fDTS是根据TIMx_CR1的CKD[1:0]的设置来确定的。

第二部分:边沿检测器,在这里设置上升沿捕获、下降沿捕获或上升沿下降沿都捕获。

第三部分:数据选择器,这里CC1S[1:0]可以对三个输入数据进行选择。
STM32为了更好的优化使用,TIMx_CH1捕捉到的信号可以传输到IC1,TIMx_CH1捕捉到的信号也可以连接到IC2,TIMx_CH2捕捉到的信号也可以连接到IC1,也可以连接到IC2。

第四部分:分频器,可以设置为每1/2/4/8次检测到电平变化才触发捕获。

三、主从触发模式

主从模式:定时器先选择触发源、从模式。当触发源被激活则执行相应从模式。
主从模式优点是硬件自动触发一些功能,不需要通过软件判断触发源,减少软件使用资源。

主模式:将定时器内部信号映射到TRGO引脚,用于触发别的外设。 

从模式:接受其他外设或自身外设信号,用于控制自身定时器。 

四、cubemx配置输入捕获 

1.配置好SYS、RRC和时钟树之后,配置时钟

这里选用的是时钟2的通道1,将通道一配置成输入捕获模式。 

TIM2使能中断,并设置成下拉输入,这样子没有输入信号的时候就是低电平,保持电平稳定;

 2.配置输入捕获参数
预分频系数为72,重装值为0xFFFFFFFF(我这里错了但是我懒得截屏了),则1us计数一次;
设置上升沿捕获、不分频、滤波值为8;

 3.最后生成文件,在keil5里面用代码实现测量高电平时间的功能就可以啦,因为太困了所以懒得弄到这边来了,借鉴一下我看的博主的思路:

1.设置TIM5 CH1为输入捕获功能;  

2.设置上升沿捕获; 

3.使能TIM2 CH1捕获功能;  

4.捕获到上升沿后,定时器当前计数值存入capture_buf[0],改为捕获下降沿;   

 5.捕获到下降沿后,定时器当前计数值存入存入capture_buf[1],关闭TIM2 CH1捕获功能;  capture_Cnt=3;

6.  高电平时间: capture_buf[1] - capture_buf[0]        发送到上位机  重新启动输入捕获

 

  • 18
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值