微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

BLE:什么可能导致 BLE 连接建立失败

如何解决BLE:什么可能导致 BLE 连接建立失败

我正在尝试在具有 SAM E54 和 FreeRTOS 的系统上实现蓝牙低功耗主机。我使用的蓝牙堆栈是 Nimble(来自 Apache 的 Mynewt-NimBLE)。我正在尝试将 SAM E54 连接到 nRF52840 加密狗(由 nRF Connect 桌面应用程序驱动)。

当我将设备设置为 Central(作为 4.x 设备,没有 5.x 功能)时,该设备可以无误地连接到另一台设备。

但是当我打开 5.x 功能(基本上是通过更改定义的值并调用一个 API 函数)并尝试连接到同一个外设时,它 10 次中有 9 次失败,触发了“连接监控器”超时”在服务器和客户端上。 我尝试更改主管超时值,但无法解决问题。当连接一定要成功时,中心的信息会立即显示在 nRF Connect 上。当连接建立将失败时,我立即知道(在触发连接监控器超时之前),因为 nRF Connect 上没有显示有关中央的信息。

一旦建立连接,它可以保持数小时,所以我认为这不是射频噪声问题。

我知道 NimBLE 最初并不是为 SAM E54 和 FreeRTOS 设计的,而且问题肯定来自堆栈的错误实现或配置。但现在我觉得我已经测试了一切,但我不知道从哪里寻找解决方案。

实际问题是:

  • 要使用 4.x BLE 功能启动连接,需要发送一些 HCI 命令数据包。这些数据包应该与我启用 5.x 功能时发送的数据包有什么不同吗?在这两种情况下,我都连接到 4.x 设备。
  • 当服务器和客户端都“认为”它们已连接但不交换信息时,连接建立过程的哪一步会失败?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。