【STM32学习】(13)STM32实现超声波测距(HC-SR04)
经过反复的研究和调试,终于搞好了,所以说,只要静下心,肯于研究,问题就会显得没那么复杂。
博文写之前,先要分析一下硬件的基本构造和样式以及它的工作原理:
样式如图:
工作原理(很重要):
说明一下工作过程:
单片机型号:STM32F103VET
1.提供一个10us以上的脉冲
2.模块会自动发出8个40KHz周期电平,并检测回波
3.等待输出回响信号,
要注意这个电平是自动产生的,测试距离远,这个脉宽就宽,与检测距离成正比。
实现步骤:
1.用按键来调用测距功能,后期可以修改成自动循环测距,但循环测距的周期要在60ms以上,不然会有干扰
按键接在PC0口
2.打开串口1(USART1),为了在电脑上用串口调试助手看测试的距离值。
3.打开定时器TIM3,这里设置了5us中断一次,读者也可以用其它定时器完成
4.开外部中断1,映射到PA1口外部中断
这样就差不多了
接线:
按键接在PC0
超声波测距模块,trig接在PA0
超声波测距模块,Echo接在PA1
超声波测距模块,VCC接在5V上
下面看代码,因为代码分的文件比较多。只贴出核心代码:
核心代码如下: