微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > peripheral + observer profile 使用问题

peripheral + observer profile 使用问题

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

我的应用需要同时做peripheral和observer,所以使用了这个profile:http://processors.wiki.ti.com/index.php/SimpleBLE_ComboRoles

同时也打了这个patch:http://e2e.ti.com/support/wireless_connectivity/f/538/t/346265,协议栈是1.4.0。

在使用过程中发现设备突然扫描不到广播,并且自身也不发广播了,发现是GAP_DEVICE_INFO_EVENT没有进入。广播端广播间隔为50ms

关键代码如下:

case GAP_DEVICE_INFO_EVENT:

{

GAPObserverRole_CancelDiscovery();

if (pEvent->deviceInfo.eventType == GAP_ADRPT_ADV_IND) {

    if (simpleBLEFindSvcUuid(PREFIX_SERVICE_UUID, pEvent->deviceInfo.pEvtData, pEvent->deviceInfo.dataLen))

       doSomthing(pEvent->deviceInfo.pEvtData, pEvent->deviceInfo.dataLen);

    }

}

在接受到GAP_DEVICE_DISCOVERY_EVENT事件后,间隔50ms后会再次开启扫描,其中扫描时间是3s。

为什么会不定期的接受不到GAP_DEVICE_INFO_EVENT事件,在接受不到事件的同时,作为peripheral也不发广播了,这种情况下profile也没有返回错误

GAPROLE_ERROR,加了定时器发现芯片也没有跑飞,感觉像协议栈跑飞了,请TI工程师能够给予解答,谢谢。

顶一下,哪位高手能解答啊

你好,yanming zhang :

        我也遇到这样的问题了,请问你找到解决方面了吧?

你好,

请把更新至最新版的协议栈1.41版本,希望对你有帮助。

尝试广播和搜索交替执行。

你好,yanming zhang:

      谢谢你的回复,目前正在尝试这种方法。

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

网站地图

Top