2.2协议栈 主机例程连接外设不成功
各位大神:
每当我调用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,不能连接成功。