This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CC2650EM-7ID-RD:中央设备表示已连接到外设、但该外设表示未连接

Guru**** 2576215 points
Other Parts Discussed in Thread: BOOSTXL-CC2650MA

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/590294/cc2650em-7id-rd-central-says-it-is-connected-to-peripheral-but-that-peripheral-says-it-is-not-connected

器件型号:CC2650EM-7ID-RD
主题中讨论的其他器件:BOOSTXL-CC2650MA

您好!

我使用中央角色 BLE 器件(BOOSTXL-CC2650MA)同时连接到两个外设角色器件(两个 CC2650EM-7ID)。 其中一个外设器件是 GATT_Notification 将数据流式传输到中央器件(~210kbit)、而在这种情况下、我连接到另一个外设器件(它不会流式传输任何内容、只需保持连接)。

在大多数情况下、这种情况正常、但有时中央设备会确认它与新的非流式外设设备之间的连接(GAP_LINK_established 会触发状态成功)、而该外设设备不会进入 GAPROLE_CONNECTED 状态:它保持在 GAPROLE_advertising 状态。 更糟糕的是、当我尝试重新连接到器件时、这种情况会反复发生:中央将确认连接、但外设似乎一无所知。 只有外设器件复位可以解决此问题。 当我从中央调用 GPCentralRole_TerminateLink 并将其从外设断开时、外设确实会显示它已断开连接并将再次进行广播、即使它从一开始就从未连接并且一直处于广播状态。

针对这一点的软件是经改编的 SimpleBLECentral 和 SimpleBLEPeripheral 程序。 是否有任何方法可以解决此问题?

谢谢、
Jochem van Boxtel

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    假设有三个器件:
    -中心
    外设 A (流式传输)
    外设 B (非流式)

    如果先连接外设 B 再连接外设 A、您是否看到任何问题?它是否保持连接?

    祝你一切顺利
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    这种情况与以前的情况相同。 我连接它们的顺序显然无关紧要。 现在中央设备连接到非流外设、它们都确认了这一点、但中央设备表示它已连接到流外设、流外设不会转换到 GAPROLE_Connected 状态。

    自我上一篇帖子以来、我还收集了一些更多信息。 在中央设备上建立第二个连接时的进展是(因此已成功建立第一个连接):

    -中央设备无错误地调用 GPCentralRole_EstablishLink。
    -中央设备接收状态为成功的 GAP_LINK_established 事件。
    -中央设备开始简单的 BLE 服务发现。
    -中央设备无错误地调用 GATT_ExchangeMTU。
    -中心永远不会获得 ATT_MTU_Update_event。
    -长时间后、中央设备接收 ATT_EXCHANGE_MTU_RSP 并调用 GATT_DiscPrimaryServiceByUUID、但 bStatus_t return 0x17 (blePending)后立即失败。

    在应用级别、外设在这期间似乎没有执行任何操作。 之后、两个器件保持中央设备认为已连接且外设未无限期连接的状态。

    感谢你的答复。