微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > 2.2协议栈 主机例程连接外设不成功

2.2协议栈 主机例程连接外设不成功

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

各位大神:

        每当我调用GAPCentralRole_EstablishLink()之后进入SimpleBLECentral_processRoleEvent()这个函数中的:

case:

GAP_LINK_ESTABLISHED_EVENT:

{
if (pEvent->gap.hdr.status == SUCCESS)
{
state = BLE_STATE_CONNECTED;
connHandle = pEvent->linkCmpl.connectionHandle;
procedureInProgress = TRUE;

// If service discovery not performed initiate service discovery
/*
if (charHdl == 0)
{
Util_startClock(&startDiscClock);
}
*/
Util_startClock(&startDiscClock);

Display_print0(dispHandle, 2, 0, "Connected");
Display_print0(dispHandle, 3, 0, Util_convertBdAddr2Str(pEvent->linkCmpl.devAddr));
}
else
{
state = BLE_STATE_IDLE;
connHandle = GAP_CONNHANDLE_INIT;
discState = BLE_DISC_STATE_IDLE;

Display_print0(dispHandle, 2, 0, "Connect Failed");
Display_print1(dispHandle, 3, 0, "Reason: %d", pEvent->gap.hdr.status);
}
}
break;

每次上面那个判断if (pEvent->gap.hdr.status == SUCCESS)都不成立,不知道为什么,很奇怪,我的外设明明工作正常,可以正常连接的。

望解答!

你好,

请问你是在TI的smart rf06 demo板子上做的测试吗?

外设和其他手机可以正常连接但不能和CC2640 central的程序正常连接?

请问,你的从设备也是BT4.2的协议栈吗?

从设备是2.1的simplepheril例程改的,用自己的板子,和手机连接一切正常。后来,我把GAPCentralRole_EstablishLink()参数中的中addrType改成固定的ADDRTYPE_PUBLIC就可以成功连接了。之前是按照搜索到的设备的addrType连接的,一般是0x02,不能连接成功。

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

网站地图

Top