OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 7360|回复: 3

求助,超声波的Echo脚一直为低电平。

[复制链接]

1

主题

1

帖子

0

精华

新手入门

积分
25
金钱
25
注册时间
2015-12-21
在线时间
0 小时
发表于 2015-12-21 17:31:50 | 显示全部楼层 |阅读模式
5金钱
各位大神,我做的是超声波测距实验,用的芯片是STM32ZET6。超声波模块用的是HC-SR04:接了5V电源。TRig接了PC7脚。ECHO接了PA5脚。
void GetDistanceDelay()
{
  //发送触发信号
  Trig_SET;
  status = 1;
  TIM_SetCounter(TIM4, 0);
  TIM_Cmd(TIM4, ENABLE);//打开定时器
  while(TIM_GetCounter(TIM4) < 11);//延时超过10us
  status = 2;
  Trig_RESET;
  TIM_SetCounter(TIM4, 0);
 
  while(Echo == 0)//等待回向信号起始位置
  {
   if(TIM_GetCounter(TIM4) > 60000)//回应时间超出正常范围
   {
    status = 0;
    distance_cm = 0;//失败后就后退
    TIM_Cmd(TIM4, DISABLE);//关闭定时器
    return;//本次失败
   }
  }
  TIM_SetCounter(TIM4, 0);
  while(Echo == 1)//开始计算长度
  {
   int count = TIM_GetCounter(TIM4);
   if(count > 60000)//回应时间超出正常范围
   {
    status = 0;
    distance_cm = 0;//失败后就后退
    TIM_Cmd(TIM4, DISABLE);//关闭定时器
    return;//本次失败
   }
  }
  dis_count = TIM_GetCounter(TIM4);
  TIM_Cmd(TIM4, DISABLE);//关闭定时器
  distance_cm = (unsigned int)(((long)(dis_count) * 34)/2000);//声速340m/s
  status = 0;//准备下次发送  
}
用示波器显示可以看出TRig发送了10us的高电平,程序运行可以进入while(Echo==1);但是死在这里出不来了。而且示波器显示低电平好奇怪。求大神帮帮忙,感觉代码逻辑没有问题的。

下位机-2015-11-22.rar

13.35 MB, 下载次数: 150

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

19

主题

702

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3339
金钱
3339
注册时间
2013-7-30
在线时间
708 小时
发表于 2015-12-21 19:17:42 | 显示全部楼层
超声波模块的Trig脚给20us的脉冲,Echo脚用定时器捕获方式计算高电平
思想很重要,无论做人还是编程!
我的技术公众号【微联智控工作室】
回复

使用道具 举报

12

主题

336

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1576
金钱
1576
注册时间
2015-8-9
在线时间
625 小时
发表于 2015-12-21 22:01:05 | 显示全部楼层
之前也同样是使用LZ的定时器方法计算超声波时间,经过几次的测试后发现,数据基本不准确。
建议使用高电平捕获的方法,测出来的数据基本上不会出错
回复

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
13
金钱
13
注册时间
2016-7-27
在线时间
1 小时
发表于 2016-7-27 21:23:49 | 显示全部楼层
楼主,我也是一样的问题,很奇怪的是,我把这个程序移植到其他单片机上去程序就能正常解决,但是我stm32的单片机就是无法运行,c51的都可以。之后我在其他谈论群里面说可能是因为有时候,3.3v和5V的电压没有分清,因为超声波模块需要的是5V但是一般单片机上是3.3V,我测试之后发现并没有效果,你可以试试看,楼主解决了请分享一下经验,我也是被这个问题搞得生无可恋了。
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-5 01:43

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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