微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > 2640做主设备搜索不到从设备的问题

2640做主设备搜索不到从设备的问题

时间:10-02 整理:3721RD 点击:

我用两块2640开发板,A开发板写入例程SimpleBLECentral,B开发板写入SimpleBLEPeripheral例程,A开发板能搜索到B开发板,但是搜不到已打开可被扫描的手机蓝牙和lightbule创建的virtual peripheral。

根据我查到的2540的资料http://blog.csdn.net/mzy202/article/details/23600587,怀疑是其中说到的“由于 SmartRF 开发板中烧写的主机程序搜索时限制了从机的 UUID,只有当从机的 UUID 为 FFF0 时才能被 SmartRF 开发板上的主机搜到”,我把从设备的B板UUID由0XFFF0改成了0X000F,作为主机的A板这时就搜不到B板了。我再把lightblue创建的virtual peripheral的uuid改成0xFFF0,可结果A板还是搜不到lightblue创建这个虚拟peripheral,而用ti的BLE Device Monitor是可以搜到lightblue创建的这个虚拟peripheral的。所以,有几个问题:

1、手机、平板这些智能设备和2640连接只能是2640做从设备,另一端做主设备吗?

2、安卓手机蓝牙设置里的开放检测(允许周围设备检测到)打开时,是不是相当于从设备?或者说怎样用手机模拟成一个从设备peripheral?

3、如果是因为central例程中uuid搜索限制,那么在central例程中在哪个地方修改?

谢谢!

1、CC2640可以作为主机连接智能手机设备

2、你的情况比较奇怪,手机只要进行BLE广播,比如说打开lightblue,设置成广播模式,就应该能被搜索到了。可否换个手机再试一下?

3、同上,个人觉得觉得不是UUID问题

1、我用了两部安卓手机和一部ipad,这三者之间都可以互相搜索到。但用2640只能搜索到ipad。咨询了一位手机APP工程师和一位蓝牙开发资深工程师,解释说是安卓手机做蓝牙从设备的话只能工作在蓝牙2.0,所以2640BLE是不能作为主设备搜索到的。不知道是否如此。

2、的确是uuid的问题,在central的例子中对uuid非0xFFF0的过滤,我试验了注释掉那个if语句就可以了。

你的安卓机的型号是否可以提供一下?还有安卓版本?

问题二:

是的,代码

case GAP_DEVICE_INFO_EVENT:
      {
        // if filtering device discovery results based on service UUID
        if (DEFAULT_DEV_DISC_BY_SVC_UUID == TRUE)
        {
          if (SimpleBLECentral_findSvcUuid(SIMPLEPROFILE_SERV_UUID,
                                           pEvent->deviceInfo.pEvtData,
                                           pEvent->deviceInfo.dataLen))
          {
            SimpleBLECentral_addDeviceInfo(pEvent->deviceInfo.addr,
                                           pEvent->deviceInfo.addrType);
          }
        }
      }
      break;

这里只有UUID=oxff才会add 加入

一部是华为荣耀8,安卓7.0;还有一部是htc D316d,安卓4.3。

另外,安卓智能手机做从设备的话就工作在蓝牙2.0,所以要求主设备端也必须不能高于蓝牙2.0,因此2640就不能用在这种手机做从设备的场合。是这样吗?

谢谢你,pang。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top