通用定时器作为输入捕获的使用 超声波 HC-SR04
通用定时器作为输入捕获的使用
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