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.

[参考译文] CC2340R5:CC2340 GAP_UpdateLinkParamReq 接口继续返回0x11

Guru**** 2595770 points
Other Parts Discussed in Thread: SYSCONFIG

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1354475/cc2340r5-cc2340-gap_updatelinkparamreq-interface-keeps-returning-0x11

器件型号:CC2340R5
主题中讨论的其他器件:SysConfig

您好!

在中央角色请求更新连接参数一次后、外设角色无法更新连接参数、并将继续返回0x11。

操作过程如下:
1、发挥中心作用、将设备连接到
2、中央角色请求更新连接参数,可以成功更新
3、扮演外设角色、连接手机(IOS 或 android 相同)
4、外设角色请求更新连接参数时、接口已返回0x11。

e2e.ti.com/.../Untitled.rar

GAP_UpdateLinkParamReq 继续返回 bleAlreadyInQueedMode。

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

    您好!

    感谢您与我们联系。

    要加快支持速度、

    -您可以指定此处使用的 SDK 版本吗?

    -您能否提供 BLE 的 SysConfig 配置集?

    -您能帮助我们分析提供的迹线吗? 我认为当配置为外设时、我没有看到 CC2340器件发送连接参数更新请求、是您特别想在此处显示的内容吗?

    最后、我想谈谈一个我要讲过的观点。 在您提供的跟踪中、我看到 CC2340拒绝了连接参数更新请求(请参阅下文)。 您能否尝试接受参数更新、看看您是否成功发送了自己的请求? 此后、是否可以尝试不从中央设备发送参数更新、并查看 CC2340发出的请求是否生效?

    此致、

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

    您好,感谢您的回复

    您能否指定此处使用的 SDK 版本?

    SDK 版本为 simplelink_lowpower_f3_sdk_7_40_00_64

    -您能否提供 BLE 的 SysConfig 配置集?

    e2e.ti.com/.../6835.basic_5F00_ble.rar

    要结束,下面是一条我想通过的观察。 在您提供的跟踪中、我看到 CC2340拒绝了连接参数更新请求(请参阅下文)。 您能否尝试接受参数更新、看看您是否成功发送了自己的请求? 之后、可以尝试不从中央设备发送参数更新、看看 CC2340发出的请求是否随后通过?

    1 μ s、让手机更新参数后、我连接到 IOS 手机、2秒后外设角色在请求更新手机参数时仍然失败、我以400ms 的间隔更新6次、每次返回0x11。

    e2e.ti.com/.../Untitled_5F00_IOS.rar

    、复位器件后2 μ s、中央角色未建立连接、或在建立连接后不主动更新参数、然后执行外设角色可以在连接到手机后成功更新参数。

    e2e.ti.com/.../Untitled_5F00_IOS2.rar

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

    您好!

    感谢您提供的其他信息、

    您能否同时指定有多少个活动连接、在作为外设进行连接之前是否从中央设备断开?

    您是否还可以尝试以下操作:

    • Include #include <ble5stack_flash/inc/gap_internal.h> 并记录 extern uint16 peripheralConnHandle; 作为外设进行连接前后以及在调用 GAP_UpdateLinkParamReq 之前的值。
    • 如果您需要同时扮演角色、请在建立外设连接之前断开与中央设备的连接。
    • 执行外设角色、然后进行中央访问并检查您是否仍可以更新参数。

    请告诉我您的发现、

    此致

    丹桂语

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

    您好,

    连接了一个中心和一个

    您能否同时指定多少个活动连接,在连接外围设备之前是否从中央断开?

    在连接电话之前、peripheralConnHandle 等于65535、连接后等于0、调用 GAP_UpdateLinkParamReq 接口之前等于0。

    Include #include <ble5stack_flash/inc/gap_internal.h> 并记录 extern uint16 peripheralConnHandle; 作为外设连接前后和调用 GAP_UpdateLinkParamReq 之前的值。

    复位后、您可以通过首先设置外围设备角色以连接到电话来更新参数。 然后充当连接其他外设的中心角色、您可以更新连接参数。 当您断开所有连接并执行外围设备角色以重新连接电话时,您将无法更新连接参数。

    简而言之、在您执行中央角色以更新参数之后、无论您是否断开连接、在执行外设角色时都无法更新参数。

    • 如果您需要同时扮演角色、请在建立外设连接之前断开与中央设备的连接。
    • 执行外设角色、然后进行中央访问并检查您是否仍可以更新参数。
    [/报价]

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

    您好!  

    感谢您提供的其他信息、

    我认为问题是在 peripheralConnHandle  LINKDB_CONNHANDLE_INVALID (0xFFFF)  #include <ti/ble5stack_flash/inc/linkdb.h> 调用前不会重置到中定义 GAP_UpdateLinkParamReq

    作为一种变通方法,您是否可以尝试 peripheralConnHandle LINKDB_CONNHANDLE_INVALID在呼叫前手动设置为 GAP_UpdateLinkParamReq

    此外、您能否帮助我peripheralConnHandle在调用之前确定在中引用的连接GAP_UpdateLinkParamReq 是中央连接还是外设?

    在连接电话之前,peripheralConnHandle 等于65535,连接后为0,调用 gap_UpdateLinkReq 接口前为0。

    此致

    丹桂语

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

    您好!

    谢谢、使用此解决了问题。 该方法是否适合长期使用以及它是否会影响外设的其他功能。

    此外、我在 CC2642中有相同的问题、但我没有找到 peripheralConnHandle 变量、SDK 版本为 simplelink_cc13xx_cc26xx_sdk_7_10_01_24

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

    您好!

    我很高兴听到该变通办法有效。  为避免任何副作用、应确保  仅在 以下情况下在调用 GAP_UpdateLinkParamReq 之前复位 peripheralConnHandle: 之前的职位是中心职位 当前角色是外设 。  添加后、权变措施应适用于长期使用、并且不应影响外设的其他功能。  尽管如此、我们还是 建议全面测试整个系统。

    为了方便问题跟踪、您可以针对 simplelink_cc13xx_cc26xx_sdk_7_10_01_24 SDK 创建一个新的 e2e 线程吗?

    此致

    丹桂语