Other Parts Discussed in Thread: CC2640R2F
使用TI的simple_central和simple_peripheral测试,主机扫描到从机,建立连接后,会调用GATT_ExchangeMTU更新MTU:
static void SimpleCentral_startSvcDiscovery(void)
{
bStatus_t status;
attExchangeMTUReq_t req;
// Initialize cached handles
svcStartHdl = svcEndHdl = 0;
discState = BLE_DISC_STATE_MTU;
// Discover GATT Server's Rx MTU size
req.clientRxMTU = scMaxPduSize - L2CAP_HDR_SIZE;
// ATT MTU size should be set to the minimum of the Client Rx MTU
// and Server Rx MTU values
VOID GATT_ExchangeMTU(scConnHandle, &req, selfEntity);
}
SimpleCentral_processGATTMsg(gattMsgEvent_t *pMsg)函数中收到ATT_MTU_UPDATED_EVENT需要2s的情况非常少见,大部分情况需要10s或者更长时间,而且在这个过程中,连接经常自动断开。
无法理解为何会这样。用CC2640R2F,不会这样,更新MTU都是2s内完成。
请求技术支持!