c/c++语言开发共享通用定时器作为输入捕获的使用 超声波 HC-SR04

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


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

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

输入捕获模式可以用来测量脉冲宽度或者测量频率
通用定时器作为输入捕获的使用 超声波 HC-SR04

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

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

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

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寄存器

c/c++开发分享通用定时器作为输入捕获的使用 超声波 HC-SR04地址:https://blog.csdn.net/qq_35988224/article/details/107905424

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/c-cdevelopment/597967.html

(0)
上一篇 2021年5月8日
下一篇 2021年5月8日

精彩推荐