具体的代码我不讲了,这篇文章主要讲形而上的东西,在写超声波模块代码时,我遇到了问题,以及如何排错的。
我水平有限,可能有些问题对很多人来说不算问题,在我这就成了鸿沟了。
首先这个原理十分简单,就是高电平要接5V电压,然后配置两个GPIO口,一个做10us的高电平输出作为启动,都在图里。
我把小灯的亮灭作为输出,但是小灯就是不亮,我决定分别进行硬件和软件排错,首先是硬件(比较容易看),看接线以及更换测距模块(如果没有多余模块,一般硬件不容易出错,多半是软件问题),发现还是不行,就暂且认定是程序出错,进入debug,在小灯处设置断点,发现程序不进去,其实自己也可以想到,要么TRIG没有触发,要么ECHO没有返回信号,因为硬件没问题,肯定是触发失败了,后来在调试中一步一步运行程序,发现程序进入了按键中断。(因为我自己写了个引脚的触发中断,用到EXTI13,又恰好原来这个程序有个按键中断,也占用EXTI13,所以就误进按键的中断)