CC2640R2 多块开发板同时工作,主机有时刚连接上就断开,并且原因返回pEvent->linkTerminate.reason == 0x3e

开发环境

操作流程:

一个主机,3个从机,主机选择从机1连接工作30秒然后断开,再连接从机2工作30秒断开,如此循环。开发板间的距离在30cm左右!

当某次连接从机的时候先进入:

    case GAP_LINK_ESTABLISHED_EVENT:
      {
        Util_stopClock(&startLinkEstClock);
        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);
          }

然后马上就进入terminate event:

    case GAP_LINK_TERMINATED_EVENT:
      {
        state = BLE_STATE_IDLE;
        connHandle = GAP_CONNHANDLE_INIT;
        discState = BLE_DISC_STATE_IDLE;
        charHdl = 0;
        procedureInProgress = FALSE;
        keyPressConnOpt = DISCONNECT;
        scanIdx = -1;
        // Cancel RSSI reads
        SimpleCentral_CancelRssi(pEvent->linkTerminate.connectionHandle);zhu

主机这边的到的信息是pEvent->linkTerminate.reason = 0x3e ,并且一对一通讯,其它的从机断电不工作就不会出现以上情况。

11 个回复