超声波使用的是HC-SR04,大家也可以用探头直接做,不过因为一个模块也不贵,就直接买模块省事;
模块的原理:板卡给超声波的TRIG引脚一个大于10us的脉冲,模块自动发送一段频率,然后反射回来之后,模块会接收到频率,随后给板卡一个回响信号,分析回响信号的时间,通过运算求得距离,公式:距离= 高电平时间*声速(340M/S)/2;
模块电气参数如下:
使用:
在这里我是借鉴论坛上的大佬的帖子做的,原版可以看这儿:http://forum.eepw.com.cn/thread/298291/1
因为我是用MX+keil来开发的,所以如果有人也是用STM32CubeMX开发的,可以直接用我的代码运行;
超声波模块代码如下:
然后在定时器5中断中每100MS测量一次左右距离;