当前位置: 移动技术网 > IT编程>开发语言>C/C++ > 通用定时器作为输入捕获的使用 超声波 HC-SR04

通用定时器作为输入捕获的使用 超声波 HC-SR04

2020年08月11日  | 移动技术网IT编程  | 我要评论
通用定时器作为输入捕获的使用TIM5 的通道 1(PA0) 来做输入捕获,捕获 PA0 上高电平的脉宽(用 KEY_UP 按键输入高电平),通过串口打印高电平脉宽时间输入捕获模式可以用来测量脉冲宽度或者测量频率1.首先设置定时器通道 x 为上升沿捕获,这样, t1 时刻,就会捕获到当前的 CNT 值,2.然后立即清零 CNT,并设置通道 x为下降沿捕获,这样到 t2 时刻,又会发生捕获事件,得到此时的 CNT 值,记为 CCRx2。 这样,根据定时器的计数频率,我们就可以算出 t1~t2 的

通用定时器作为输入捕获的使用

TIM5 的通道 1(PA0) 来做输入捕获,
捕获 PA0 上高电平的脉宽(用 KEY_UP 按键输入高电平),
通过串口打印高电平脉宽时间

输入捕获模式可以用来测量脉冲宽度或者测量频率
在这里插入图片描述

1.首先设置定时器通道 x 为上升沿捕获,这样, t1 时刻,就会捕获到当前的 CNT 值,
2.然后立即清零 CNT,并设置通道 x为下降沿捕获,这样到 t2 时刻,又会发生捕获事件,得到此时的 CNT 值,记为 CCRx2。 这样,
根据定时器的计数频率,我们就可以算出 t1~t2 的时间,从而得到高电平脉宽。
CNT计数的次数等于: N*ARR+CCRx2
乘以 CNT 的计数周期
可得到 t2-t1 的时间长度,即高电平持续时间。

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

Vcc:+5V电源供电
Trig:输入触发信号(可以触发测距)PD11
Echo:传出信号回响(可以传回时间差)PA0
Gnd:接地
NVIC_InitStructure.NVIC_IRQChannel = TIM5_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=2;//抢占优先级3
NVIC_InitStructure.NVIC_IRQChannelSubPriority =0; //子优先级3
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQ通道使能
NVIC_Init(&NVIC_InitStructure); //根据指定的参数初始化VIC寄存器

本文地址:https://blog.csdn.net/qq_35988224/article/details/107905424

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网