基于STM32F103的超声波测距
1.前言:这是自己的第一篇博客,关于超声波测距的程序自己之前写过一个。今天再写的时候忙活了一天但一直卡在了一个奇怪的地方,后来发现是自己手里这个德飞莱STM32F103ZET6的大板上的5V引脚根本无法输出5V(测试后发现5V引脚的电压只有2.8V),我手里这个HY-SRF05超声波模块的工作电压为5V,所以模块的电压一直不足,才导致了程序烧写进去也没现象。后来外接5V后测距正常。
注:我是用ST-LINK直接连的开发板,ST-LINK上的电源口连着3.3V,我自己怀疑是这个原因,即ST-LINK连接到开发板上的电源只有3.3V,所以开发板上的5V电源口无法输出标定的5V。用J-LINK连接开发板我没试过,所以会不会出现这个问题我不清楚。
2.正篇:用STM32的输入捕获模式来完成超声波测距
我自己写这个的时候是参照“STM32中文参考手册_V10来”完成,手册里讲得已经很详细了。
代码的核心部分如下所示:
//PA2-发送触发脉冲
//PA0-接收回响信号
void TIM2_TRIG(void)//触发信号,大于10us的高电平,周期最好大于60ms
{
TRIG_H;
Delay_us(15);
TRIG_L;
Delay_us(60000);
}
{
TRIG_H;
Delay_us(15);
TRIG_L;
Delay_us(60000);
}
void TIM2_Initi(uint16_t Period,