4106|16

74

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

无线收发+超声波 [复制链接]

为什么超声波的值没有变化啊?那就是只能发出一次数据咯?为什么啊?



最新回复

有完整代码分享吗?   详情 回复 发表于 2016-3-21 13:16
点赞 关注
 

回复
举报

74

帖子

0

TA的资源

一粒金砂(中级)

沙发
 
那个函数为主函数,求大神帮帮忙啊!
 
 
 

回复

3

帖子

1

TA的资源

一粒金砂(初级)

板凳
 
这种超声波传感器都是用计数器的吧,以前写过,记得流程是:while(1){发送高电平(启动超声波+启动计数器);等待返回高电平(若捕捉到高电平就停止计数并取计数器的值);计算)

点评

是啊,是超声波的不对吗?  详情 回复 发表于 2014-4-2 16:40
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(中级)

4
 
chuankay 发表于 2014-4-2 16:14
这种超声波传感器都是用计数器的吧,以前写过,记得流程是:while(1){发送高电平(启动超声波+启动计数器) ...

是啊,是超声波的不对吗?
 
 
 

回复

3404

帖子

6

TA的资源

裸片初长成(初级)

5
 
没有用过帮不上忙了

点评

那请问用过无线吗?  详情 回复 发表于 2014-4-2 16:56
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(中级)

6
 
jishuaihu 发表于 2014-4-2 16:48
没有用过帮不上忙了

那请问用过无线吗?
 
 
 

回复

1658

帖子

1

TA的资源

纯净的硅(高级)

7
 
你确定无线正常工作了吗,之前用si4432的时候 甚至出现了初始化不通过的情况,一直卡在无线初始化那块没有往下执行

建议无线和超声分开试,都正常工作了在联合调试

点评

无线能正常了的,超声波也能正常了的,都单独试过了的,现在不知怎么联系起来了  详情 回复 发表于 2014-4-3 08:34
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(中级)

8
 
tianshuihu 发表于 2014-4-2 21:30
你确定无线正常工作了吗,之前用si4432的时候 甚至出现了初始化不通过的情况,一直卡在无线初始化那块没有 ...

无线能正常了的,超声波也能正常了的,都单独试过了的,现在不知怎么联系起来了
 
 
 

回复

1658

帖子

1

TA的资源

纯净的硅(高级)

9
 
不知道你的软件流程是怎么安排的,超声用到中断了吗,无线负责把数据传出去是吗

我觉得初始化完成之后,在主循环可以如下操作(定时中断处理超声回波信号)

查询上次的超声测距是否完成
  未完成则继续等待,并把上次的距离无线传回
  如果已完成则 发一到三个超声波脉冲 ,并把测得的距离无线传回


定时器中断处理两个事件,一是超声回波信号触发的中断,根据时间即可判断距离,获得距离之后在这里更新,主函数只是把最新的距离传回
二是超时中断,这个是处理超声发出去之后没有回波的情况的
以上情况有一个发生,即可判定一次测距完成


点评

不明白?我的思路是,超声波、无线都是直接用外部中断来处理的,超声波的的是ECHO为为高时就打开定时器,接收到回波的时候就产生一个中断,然后再在终端里边进行数据处理,然后就直接把转换来的超声波的数据赋给发送  详情 回复 发表于 2014-4-3 16:46
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(中级)

10
 
tianshuihu 发表于 2014-4-3 11:33
不知道你的软件流程是怎么安排的,超声用到中断了吗,无线负责把数据传出去是吗

我觉得初始化完成之后, ...

不明白?我的思路是,超声波、无线都是直接用外部中断来处理的,超声波的的是ECHO为为高时就打开定时器,接收到回波的时候就产生一个中断,然后再在终端里边进行数据处理,然后就直接把转换来的超声波的数据赋给发送端的数组,之后就是在循环里边对数据进行循环发送的。刚才我试过了,没有超声波的时候,无线模块是能循环发送数据的。
 
 
 

回复

1658

帖子

1

TA的资源

纯净的硅(高级)

11
 
基本上明白你的思路了,看你的主循环应该是发一个超声,等待回波,无线发送数据,但是有个问题

万一在 20 ms(看你的极限探测距离来设定,20ms对应3.4m左右) 之后还收不到回波信号你是如何处理的
你的while主循环中还有一个 while 判断,这个判断的条件如果一直为真的话岂不是要一直等下去,建议改为while(xxx & num--), num可以设一个保险的值

点评

按照你的想法试过了,没见的呢,关键是我不是很明白while那里这样改的意思呢  详情 回复 发表于 2014-4-3 20:10
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(中级)

12
 
tianshuihu 发表于 2014-4-3 17:31
基本上明白你的思路了,看你的主循环应该是发一个超声,等待回波,无线发送数据,但是有个问题

万一在 2 ...

按照你的想法试过了,没见的呢,关键是我不是很明白while那里这样改的意思呢
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(中级)

13
 
成功了!!原来是超声波的触发被之后的赋值覆盖掉了的,最后我用示波器测超声波,什么也没有,最后换了个引脚就行了,感谢天感谢地啊!
 
 
 

回复

1658

帖子

1

TA的资源

纯净的硅(高级)

14
 
恭喜楼主总算把问题解决了

我在上面 的 while 判断多加了一个条件 num!=0 (num--),
如果num初值为10000,判断一次要2us的话,最多20ms之后 这个while循环肯定会跳过
这样就不会出现程序卡在那里不继续执行

我很好奇你的超声发出去一定有回波信号吗

点评

我觉得你说的很有道理诶,有些时候没有回波的时候程序就会卡在那里咯哦,这些细节真的没有想到呢,谢谢指导哦!  详情 回复 发表于 2014-4-7 20:37
 
 
 

回复

15

帖子

0

TA的资源

一粒金砂(初级)

15
 
呵呵。。。。,看着头晕!
 
个人签名***100级超洁净真空、充气、封口一体包装机直销!!18665396459
 
 

回复

74

帖子

0

TA的资源

一粒金砂(中级)

16
 
tianshuihu 发表于 2014-4-4 09:28
恭喜楼主总算把问题解决了

我在上面 的 while 判断多加了一个条件 num!=0 (num--),

我觉得你说的很有道理诶,有些时候没有回波的时候程序就会卡在那里咯哦,这些细节真的没有想到呢,谢谢指导哦!
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

17
 
有完整代码分享吗?
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表