主题中讨论的其他器件:SIMPLELINK-CC2640R2-SDK、
我正在使用 ble_examples/2.2中的 multi_role_cc2650lp_app/stack 项目进行测试。 我有一个具有 CC2650EM-7ID 的 SmartRF06。 由于示例中没有 CC2650EM 版本的工程(为什么?)、我修改了 LaunchPad 版本以在评估板上运行。 我使用的是 CCS 7、编译器版本16.9.0.LTS、BLE SDK v2.01.18和 TI-RTOS v2.20.1.08。
通常、它看起来正常工作、但当我连接到它时、将其视为外设、连接在一分钟内由于某种原因而断开。 起初、我认为它与粘接相关(我认为这是其他人面临类似问题的问题)。 我使用 MacOS 中的 LightBlue 以及 Android 手机上的 NRF Connect 连接与其连接、并且在键入123456密码后、二者都无法配对(MacOS 原因是"SMP_Pairing_failed_unspecified 0x08 //!<由于未指定的原因、配对失败"; Android 一个"SMP_Pairing_failed_OOB_not _AVAIL 0x02 //!< OOB 数据不可用")。 我不知道其中任何一个失败的原因、因此我只通过将配对模式更改为 GAPBOND_PAING_MODE_WAIT_TO_REQ 来阻止它。 但是、问题仍然存在。 我向 gapRole_processGAPMsg 添加了一个断点、以查看 GAP_LINK_TERMINATED_EVENT 的原因。 当使用任一器件连接到"multirole:"时会发生这种情况。 这是唯一存在的连接(即1个外设、0个中央设备)。
我查看了数据包、似乎没有发生任何奇怪的事情。 在交换大量空 PDU 后、连接会停止(我会包含该信息、但我只有一个与 Wireshark 相结合的 Adafruit 监听器。 问题: 是否有方法可以将 CC2650em 用作 BLE 数据包监听器?)。 之后、器件会恢复广播。
有人可以提供任何建议或帮助吗?
(一些其他背景信息:我在处理最初源自 SimplePeripheral 的项目时实际上发现了这一点。 我想向其添加多角色功能、因此我做的第一件事是为其构建一个新的堆栈库、其中针对-DHOST_CONFIG=PERIODIFY_CFG+CENTRAL_CFG 和-dble_V41_features =V41_CTRL_CFG 进行了修改、就像在 multi_role 项目中一样。 该应用程序保持不变、只是为了应对新堆栈而进行了重新构建。 在更改之前(即、仅-DHOST_CONFIG=PERIOD_CFG)、与我的外设的连接是稳定的:与任一客户端测试应用程序的连接都将无限期持续。 使用多角色堆栈时、会出现连接超时问题。 这是我返回到原始多角色项目进行检查的时候。)
谢谢!
Dave