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.

[参考译文] CC2541:粘接问题

Guru**** 2768525 points

Other Parts Discussed in Thread: CC2541, CC2540

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1041424/cc2541-problem-facing-with-bonding

器件型号:CC2541

您好,

我在绑定某些 Android 手机时以及在手动从所有手机上删除配对时遇到问题。 除非我使用  GAPBOND_ERASE_ALLBONDS 擦除 CC2541中的所有绑定(GAPBondMgr_SetParameter ())、否则不会再次绑定。 现在允许的最大债券数为10、在应用中、我将在超过10时删除最早的债券。 这是可以正常运作的,我相信这与现时的问题并无关系。 那么、我的问题是 为什么 CC2541不会发生键合?  

我在此处附上监听器日志:

NRF Connect、2021-10-02
WirelessONE-000PCT (B0:B1:13:85:DD:88)
D 14:35:29.397 GATT.Close()
D 14:35:29.402等待(200)
V 14:35:29.608连接到 B0:B1:13:85:DD:88...
D 14:35:29.609 GATT = device.connectGatt (AutoConnect = false、transport = LE)
D 14:35:30.565 [广播]操作接收到:android.bluetooth.device.action.BOND_STATE_CHANGED、键合状态更改为:Bond_bonding (11)
D 14:35:30.566 [广播]操作已接收:android.bluetooth.device.action.PAIRING_REQUEST、配对型号:Pairing_variant_Consent (3)
D 14:35:30.588 [广播]收到的行动:android.bluetooth.device.action.ACL_CONNECTED
D 14:35:30.609 [回叫]连接状态已更改、状态为0、新状态为已连接(2)
I 14:35:30.609连接到 B0:B1:13:85:DD:88
D 14:36:00.890 [广播]操作已接收:android.bluetooth.device.action.BOND_STATE_CHANGED、绑定状态更改为:bond_none (10)
I 14:36:00.890绑定失败
v 14:36:00.906正在发现服务...
D 14:36:00.906 GATT.discoverServices()
D 14:36:00.974 [回叫]服务已发现、状态为0
I 14:36:00.974已发现服务
V 14:36:01.018通用访问(0x1800)
-器件名称[R](0x2A00)
-外观[R](0x2A01)
-外设隐私标志[R](0x2A02)
-重新连接地址[W](0x2A03)
-外设首选连接参数[R](0x2A04)
通用属性(0x1801)
-服务已更改[i](0x2A05)
   客户端特征配置(0x2902)
器件信息(0x180A)
-系统 ID [R](0x2A23)
-模型编号字符串[R](0x2A24)
-序列号字符串[R](0x2A25)
-固件版本字符串[R](0x2A26)
-硬件版本字符串[R](0x2A27)
-软件版本字符串[R](0x2A28)
-制造商名称字符串[R](0x2A29)
- IEEE 11073-20601法规认证数据列表[R](0x2A2A)
- PnP ID [R](0x2A50)
未知服务(0000fa00-0000-1000-8000-00805f9b34fb)
-未知特征[R W](0000fa01-0000-1000-8000-00805f9b34fb)
-未知特性[N WNR](0000fa02-0000-1000-8000-00805f9b34fb)
   客户端特征配置(0x2902)
未知服务(0000fb00-0000-1000-8000-00805f9b34fb)
-未知特性[N R](0000fb01-0000-1000-8000-00805f9b34fb)
   客户端特征配置(0x2902)
-未知特性[R W](0000fb02-0000-1000-8000-00805f9b34fb)
-未知特性[N W](0000fb03-0000-1000-8000-00805f9b34fb)
   客户端特征配置(0x2902)
-未知特性[N R](0000fb04-0000-1000-8000-00805f9b34fb)
   客户端特征配置(0x2902)
-未知特征[W](0000fb05-0000-1000-8000-00805f9b34fb)
-未知特征[W](0000fb06-0000-1000-8000-00805f9b34fb)
-未知特性[R W](0000fb07-0000-1000-8000-00805f9b34fb)
-未知特征[R](0000fb08-0000-1000-8000-00805f9b34fb)
-未知特性[N R W](0000fb09-0000-1000-8000-00805f9b34fb)
   客户端特征配置(0x2902)
-未知特性[N R](0000fb0a-0000-1000-8000-00805f9b34fb)
   客户端特征配置(0x2902)
未知服务(0000fc00-0000-1000-8000-00805f9b34fb)
-未知特性[R W](0000fc10-0000-1000-8000-00805f9b34fb)
-未知特性[R W](0000fc13-0000-1000-8000-00805f9b34fb)
-未知特性[R W](0000fc14-0000-1000-8000-00805f9b34fb)
-未知特性[R W](0000fc16-0000-1000-8000-00805f9b34fb)
-未知特性[R W](0000fc18-0000-1000-8000-00805f9b34fb)
-未知特性[R W](0000fc1a-0000-1000-8000-00805f9b34fb)
-未知特性[R W](0000fc2e-0000-1000-8000-00805f9b34fb)
-未知特性[R W](0000fc42-0000-1000-8000-00805f9b34fb)
未知服务(0000fe00-0000-1000-8000-00805f9b34fb)
-未知特性[N R W](0000fe01-0000-1000-8000-00805f9b34fb)
   客户端特征配置(0x2902)
-未知特性[R W](0000fe02-0000-1000-8000-00805f9b34fb)
-未知特性[N R W](0000fe03-0000-1000-8000-00805f9b34fb)
   客户端特征配置(0x2902)
-未知特性[R W](0000fe04-0000-1000-8000-00805f9b34fb)
-未知特性[R W](0000fe05-0000-1000-8000-00805f9b34fb)
-未知特性[R W](0000fe06-0000-1000-8000-00805f9b34fb)
D 14:36:01.018 gatt.setCharacteristicNotification(00002a05-0000-1000-8000-00805f9b34fb、true)
D 14:36:01.020 gatt.setCharacteristicNotification(0000fa02-0000-1000-8000-00805f9b34fb、true)
D 14:36:01.022 gatt.setCharacteristicNotification(0000fb01-0000-1000-8000-00805f9b34fb、true)
D 14:36:01.025 gatt.setCharacteristicNotification(0000fb03-0000-1000-8000-00805f9b34fb、true)
D 14:36:01.027 gatt.setCharacteristicNotification(0000fb04-0000-1000-8000-00805f9b34fb、true)
D 14:36:01.030 gatt.setCharacteristicNotification(0000fb09-0000-1000-8000-00805f9b34fb、true)
D 14:36:01.032 gatt.setCharacteristicNotification(0000fb0a-0000-1000-8000-00805f9b34fb、true)
D 14:36:01.034 gatt.setCharacteristicNotification(0000fe01-0000-1000-8000-00805f9b34fb、true)
D 14:36:01.037 gatt.setCharacteristicNotification(0000fe03-0000-1000-8000-00805f9b34fb、true)
I 14:36:01.181从0000fb01-0000-1000-8000-00805f9b34fb 接收的通知、值:(0x) 00-00
收到14:36:01.181 "(0x) 00-00-00"
I 14:36:01.421从0000fb01-0000-1000-8000-00805f9b34fb 接收通知、值:(0x) 00-00
收到14:36:01.421 "(0x) 00-00-00"
I 14:36:01.665从0000fb01-0000-1000-8000-00805f9b34fb 接收到通知、值:(0x) 00-00
接收到一个14:36:01.665 "(0x) 00-00-00"
I 14:36:01.909从0000fb01-0000-1000-8000-00805f9b34fb 接收的通知、值:(0x) 00-00
收到14:36:01.909 "(0x) 00-00-00"
I 14:36:02.206从0000fb01-0000-1000-8000-00805f9b34fb 接收的通知、值:(0x) 00-00
接收到一个14:36:02.206 "(0x) 00-00-00"
I 14:36:02.505从0000fb01-0000-1000-8000-00805f9b34fb 接收通知、值:(0x) 00-00
接收到一个14:36:02.505 "(0x) 00-00-00"
I 14:36:02.689从0000fb01-0000-1000-8000-00805f9b34fb 接收到通知、值:(0x) 00-00
收到14:36:02.689 "(0x) 00-00-00"
I 14:36:02.932从0000fb01-0000-1000-8000-00805f9b34fb 接收的通知、值:(0x) 00-00
接收到一个14:36:02.932 "(0x) 00-00-00"
I 14:36:03.176从0000fb01-0000-1000-8000-00805f9b34fb 接收到通知、值:(0x) 00-00
接收到一个14:36:03.176 "(0x) 00-00-00"
I 14:36:03.471从0000fb01-0000-1000-8000-00805f9b34fb 收到通知、值:(0x) 00-00
接收到一个14:36:03.471 "(0x) 00-00-00"
I 14:36:03.664从0000fb01-0000-1000-8000-00805f9b34fb 接收到的通知、值:(0x) 00-00
收到14:36:03.664 "(0x) 00-00-00"
D 14:36:03.916 [回调]连接状态已更改、状态为:22、新状态为已断开连接(0)
E 14:36:03.916错误22 (0x16):GATT CONN 终止本地主机
I 14:36:03.916已断开连接
D 14:36:04.115 [广播]收到的操作:android.bluetooth.device.action.ACL_DISCONNECTED
D 14:36:09.624 GATT.Close()
D 14:36:09.629等待(200)
V 14:36:09.836连接到 B0:B1:13:85:DD:88...
D 14:36:09.836 GATT = device.connectGatt (AutoConnect = false、transport = LE)
D 14:36:10.448 [回叫]连接状态已更改、状态:133、新状态:已断开连接(0)
E 14:36:10.449错误133 (0x85):GATT 错误
I 14:36:10.449已断开连接
D 14:36:42.457 GATT.Close()
D 14:36:42.462等待(200)
V 14:36:42.668连接到 B0:B1:13:85:DD:88...
D 14:36:42.668 GATT = device.connectGatt (AutoConnect = false、transport = LE)
D 14:36:44.432 [回叫]连接状态已更改、状态为:133、新状态为已断开连接(0)
E 14:36:44.433错误133 (0x85):GATT 错误
I 14:36:44.433已断开连接

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

    尊敬的 Varun:

    您能否指定为此运行的 SDK 版本? 也是如此。 如果您将允许的最大债券数量减少到3个、您是否会看到相同的行为? 我们现在正在内部调查一个类似的问题、这让我认为这可能是相关的。

    最棒的

    不需要

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

    SDK 版本:BLE_SDK_1.4.2.2。 不是,我是以另一种方式尝试的,这种方式将债券的最大数量增加到了15个。 但它不起作用。 我想、减少债券编号可能会在时间上起作用、直到下次在客户程序中清零债券并且仍然存在于  CC2541中  

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

    听起来不错。 让我知道当您减少该数字时会发生什么情况。

    此外、让我知道如果您更新到此处的 BLE 1.5堆栈会发生什么情况。 也许两个版本之间的错误已修复。

    https://www.ti.com/tool/BLE-STACK

    最棒的

    不需要

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

    你好、Nate、

    是否有说明更新此更新过程的文档? 如何更新到最新堆栈? 我已经下载并安装了最新的堆栈、我的驱动器中有最新的 BLE 文件夹吗? 如何继续?

    最棒的

    瓦伦

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

    我在构建应用程序时遇到此错误: 致命错误[E59]:MODULE ATT_CLIENT (E:\Actv8\iAir3\PrereleaseSix\TPMS_01_00_06_PR - Copy\BCP_Application\BCP_Platform\BLE-CC254x-1.4.2.2.1\projects\ble\CC2541DB\UCC11.0_lib_lib_lib_修订 版)。 此 XLink 仅支持最高11.0.2的 UBROF 版本。 您知道原因吗? 我该怎么做才能支持11.0.3?

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

    尊敬的 Varun:

    在较新 SDK 的 Documents 文件夹(下载链接)中、您应该会看到软件开发人员指南 pdf、其中将在第9节中提供从较旧 SDK 移植项目的明确说明。

    最棒的

    不需要

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="492310" URL"~/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1041424/cc2541-problem-facing-with-bonding/3853328 #3853328"]构建应用程序时遇到此错误: 致命错误[E59]:模块 ATT_CLIENT (E:\Actv8\iAir3\PrereleaseSix\TPMS_01_00_06_PR -库\BCP_Application\BCP_Platform\BCC254.2b\BLE-11.0\BLE-lib\CC254ble_projects\BLE.lib\CC25411.0_lib\BLE-lib\CC254ble_projects)。 此 XLink 仅支持最高11.0.2的 UBROF 版本。 您知道原因吗? 我该怎么做才能支持11.0.3?[/引述]

    移植时、请确保遵循指南。 如果此错误仍然存在、我们可以进一步深入探讨。

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

    是的、我遵循了本文档中介绍的指南:

    CC2540/41低功耗蓝牙软件开发人员指南(修订版 I)(TI.com)

    目前我使用的是 IAR Workbench 版本9.29.1.. 是否可以在同一版本中重新关注此问题?

    使用最新的 IAR Workbench 时、我遇到以下链接器错误:

    工具内部错误:
    内部错误:函数中:未知
    诊断:意外异常
    P0:1 P1:0
    内部错误:函数中:未知
    诊断:意外异常
    P0:1 P1:0
    运行链接器时出错

    错误总数:2.

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

    尊敬的 Varun:

    您是否以增量方式添加代码并频繁编译代码以查看其停止工作的位置? 可帮助我们在此处找到错误。 这是一个链接器错误、这一事实让我认为您可能在两个文件中双定义了某个内容、或者对同一变量使用了两种不同的类型。 不幸的是、有很多不同的地方可以开始查看。

    也会有同事在购物、他们比我更使用 IAR。

    最棒的

    不需要

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

    https://e2e.ti.com/support/wireless-connectivity/other-wireless-group/other-wireless/f/other-wireless-technologies-forum/58179/iar-7-6-linker-error

    我的同事建议查看此链接以获取相关信息/修复。

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

    我更新了最新的 BLE 堆栈。 配对现在已得到改进、但问题仍然存在、 尽管无法成功绑定的频率已降低。 当无法绑定时,控制器需要重新启动电源。 我尝试将债券的最大数量减少到3个。 但它没有任何效果。  。

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

    尊敬的 Varun:

    您是否看到 了 GAPBOND_BUCK_FAIL_ACTION 事件? 您可以在 BLE5堆栈库中找到有关它的更多信息。 如果器件超出外设的绑定表、但不在中央、则可以使用它来重新配对。 您可能会告诉它在那里再次接合。

    最棒的

    不需要

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

    你好、Nate、

    是的、确实如此。 I intied GAPBOND_BUCK_FAIL_ACTION 事件、甚至使用参数 GAPBOND_ERASE_ALLBONDS 进行了尝试。 没有帮助。

    最棒的

    瓦伦

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

    尊敬的 Varun:

    也许您可以尝试从器件上的最新 SDK 中运行未经修改的 simple_central 代码、然后查看是否出现相同的错误。 如果不是、我建议将您的代码与 simple_central 代码进行比较、以查看它们之间的差异并进行必要的调整。 我认为错误可能出现在设置中、但需要进行一些(可能乏味)差异检查才能确定。

    最棒的

    不需要

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

    你好、Nate、

    我没有 CC2540DK-MINI 密钥卡器件、我应该对 simple_peripheral 进行哪些更改来检查连接是否发生?

    同时,这也是我现在使用最新的 BLE-CC254x-1.5.2.0获得的结果。 Android OS 版本10 、LG thinq V60

    NRF Connect、2021-10-22
    WirelessONE-060550 (78:DB:2F:F3:B2:1E)
    D 00:53:23.161 GATT.Close()
    D 00:53:23.167等待(200)
    V 00:53:23.369正在连接到78:DB:2F:F3:B2:1E...
    D 00:53:23.369 GATT = device.connectGatt (AutoConnect = false、translation_LE、首选 PHY = LE 1M)
    D 00:53:24.668 [广播]操作已接收:android.bluetooth.device.action.BOND_STATE_CHANGED、绑定状态更改为:bond_bonding (11)
    D 00:53:24.678 [Callback]连接状态已更改、状态为0、新状态为已连接(2)
    I 00:53:24.678连接到78:DB:2F:F3:B2:1E
    D 00:53:24.710 [广播]收到的操作:android.bluetooth.device.action.ACL_CONNECTED
    D 00:53:24.710 [广播]操作已接收:android.bluetooth.device.action.PAIRING_REQUEST、配对变体:Pairing_variant_Consent (3)
    已更新 I 00:53:25.154连接参数(间隔:7.5ms、延迟:0、超时:5000ms)
    已更新 I 00:53:25.920连接参数(间隔:45.0ms、延迟:0、超时:5000ms)
    D 00:53:27.093 [Callback]连接状态已更改、状态为:19、新状态为:Disconnected (0)
    W 00:53:27.093对等端接的连接(状态19)
    I 00:53:27.093已断开连接
    D 00:53:27.114 [广播]操作接收到:android.bluetooth.device.action.BOND_STATE_CHANGED、键合状态更改为:BON_NONE (10)
    I 00:53:27.114定色失败
    D 00:53:27.116 [广播]收到的操作:android.bluetooth.device.action.ACL_DISCONNECTED

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

    尊敬的 Varun:

    根据您输入的文本、当更改连接间隔时、两个设备之间的连接看起来会下降。 我建议查看为两台设备设置的最小和最大连接间隔、以确保它们兼容。

    最棒的

    不需要

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

    你好、Nate、

    是否有文档可以详细了解此时间间隔?

    最棒的

    瓦伦

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

    尊敬的 Varun:

     您在上面发送的 CC2540/41低功耗蓝牙软件开发人员指南(修订版 I)(TI.com)对此有大量文档。 从文档的第一遍、您似乎应该检查  代码中对 GAP_SetParamValue 和 GAPRole_SendUpdateParam 的调用。 我还建议更详细地查看该文档、因为有许多有关更新连接间隔的参考信息、您可能会发现这些信息很有用。

    最棒的

    不需要

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

    你好、Nate、  

    非常感谢您认真倾听我的问题。 我想我发现了这个问题。 基本上、在代码中、器件在连接前开始扫描。 因此、在 BLE 高流量区域中、这会导致连接复杂化。 那么、现在我要做的是、在连接期间禁用扫描、并在连接后重新启用? 当连接开始和完成时、是否有从堆栈到应用的任何指示?  

    非常感谢。

    最棒的

    瓦伦

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

    尊敬的 Varun:

    很高兴为您提供帮助。 但是、对于后续问题、请打开新主题。 这有助于我们更好地跟踪线程、并使未来的其他人更容易提出问题。 只需在新问题中复制并粘贴您的帖子、我很乐意为您提供帮助。

    最棒的

    不需要

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

    完美! 已启动新主题: (+) CC2541:在连接时禁用活动扫描-蓝牙论坛- BluetoothRegistered︎- TI E2E 支持论坛