找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4480|回复: 4
打印 上一主题 下一主题
收起左侧

(资料分享)51单片机超声波测距时发现只测一次或几次数据就会陷入死循环,现已解决。

[复制链接]
跳转到指定楼层
楼主
在设置发送模式后,有时程序会停留在等待ECHO引脚置1这个while循环里出不来,只要在这个循环里加入防死循环跳出程序即可,此外在设置发送模式成功以后收不到反射回来的信号的while等待中也需要加入防死循环语句。 。附上完整程序。

超声波测距(LCD1602显示).zip

67.46 KB, 下载次数: 77, 下载积分: 黑币 -5

实测解决只测一次或几次问题

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏4 分享淘帖 顶 踩
回复

使用道具 举报

来自 5#
ID:482935 发表于 2020-5-5 15:36 来自手机 | 只看该作者
楼主牛逼!当初做超声波实验的时候就想到这个问题了。。。但是倒是一直没发生死循环卡住的问题就没太在意。 另外楼主如果没有收到echo的1的话,可能是因为一开始20微秒的启动方波给的时常不够,再多给点延时看看。还有我把这个hcsr04朝天射过,感觉它一定时间(很长时间,超过量程最大时间)之后,echo引脚好像必定会置1的,然后根据长短时间再变0。 我看了hcsr04内部也是个单片机,估计里面程序有防止没回波置1的保障的,也就是只要启动发射超声波了,长时间后echo必定会给个置1。
回复

使用道具 举报

沙发
ID:271725 发表于 2019-3-14 21:06 | 只看该作者
有三个警告
回复

使用道具 举报

板凳
ID:345548 发表于 2019-8-18 10:25 | 只看该作者
不错,方法可行,不过我建议在第一张图里for语句即可实现,执行效率会高点,因为我的中断中flag=1,所以取的反,可供参考

51hei浏览器截图20190818102440.png (4.46 KB, 下载次数: 53)

51hei浏览器截图20190818102440.png
回复

使用道具 举报

地板
ID:91402 发表于 2020-1-20 16:16 | 只看该作者
bluewn 发表于 2019-8-18 10:25
不错,方法可行,不过我建议在第一张图里for语句即可实现,执行效率会高点,因为我的中断中flag=1,所以取 ...

程序用的好特别
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表