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.

[参考译文] CC256XM4BTBLESW:复位器件上的配对丢失

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/657893/cc256xm4btblesw-lost-pairing-on-reset-device

器件型号:CC256XM4BTBLESW

我使用 SPPDemo。

我发送到 SPPDemo:

客户端

查询

对1 1

打开1 1

那么、端口打开需要100ms 的时间进行连接。

复位器件并发送时的状态

查询

打开1 1

Open 需要3000ms

系统已丢失配对。

复位后、我可以执行什么操作来保持配对?

我从中回写 KeyLink

我使用 LinkKey 值回写 LinkKeyInfo、在配对比值重置后从 atLinkKeyCreation 中获得的值。

但 SPP_Open_Remote_Port 不使用 LinkKeyInfo。

在 SPP_Open_Remote_Port 之后、我没有从远程设备获得验证回调。

这就是我无法通过 LinkKeyInfo 向器件发送 GAP_Authentication_Response 的原因。

我们需要的是、SPP_Open_Remote_Port 的速度与 Bevore Reset 的速度相同。

重置后我不想发送配对、因为它太慢了。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    换言之、我们需要在每次复位后无需配对即可快速重新连接。

    但客户端在重置后忘记了 LinkKey。 我可以在不执行新配对过程的情况下将其重新设置。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    罗纳德

    请参阅 上一篇有关 通过重置存储链接密钥的文章、尤其是 Vihang 关于将变量放置在存储器中的第一个响应。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Dale、
    是的、我执行此操作、如文章中所述。
    我将 LinkKey 存储在 RAM 中。

    但 SPP_Open_Remote_Port 函数不使用 LinkKey。
    此函数只能从设备提供 BD-Adress。

    我应该如何处理 LinkKey? 这是不可要求的。

    复位后、我调用函数:
    SPP_Open_Remote_Port (BluetoothStackID、BtAdress、BtPort、SPP_Event_Callback、(无符号长整型) 0);
    我无法为该功能提供已还原的 LinkKey。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    重新启动器件后、您需要从 RAM 中的位置获取链接密钥、并将信息传回 LinkKeyInfo 结构。 这样、先前存储的 LinkKeyInfo 将在下电上电后恢复、当远程设备尝试重新连接时、应用程序将能够使用之前存储的链接密钥。 这在 GAP_Event_Callback 的 atLinkKeyRequest 事件中发生。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    但当我设置 SPP_Open_Remote_Port 时、atLinkKeyRequest 不会触发。

    但我解决了以下问题:
    我必须发送一个新的配对。 然后触发 atLinkKeyRequest 请求。
    如果 LinkKey 符合要求、则不会再请求任何引脚代码。
    谢谢、
    Ronny