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:CC2541F256TRHaRQ1上的链路层错误

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1211049/cc2541-link-layer-error-on-cc2541f256trharq1

器件型号:CC2541

您好、我是 Tomás í a

我 有关于 CC2541F256T 的 BLE 堆栈4.2的问题

使用该微控制器作为外围设备和中央设备在链路层中出现错误(0x13)。

外设是一个节点、它会定期进入睡眠状态并发出温度和时间戳通知。

此错误通知被解决为"远程用户终止连接"。

这个错误是否会由于 外设的时间违规而出现?

 

我的问题是:

是否有可能在应用层强制实施此错误? 或者控制器是否由 TI 堆栈 API 提供?

这是为了确保问题是由低级堆栈生成的、并且应用程序中描述的任何内容都不会使任何用户函数强制此错误。

在这种情况下、它是否会报告有关此故障的任何信息? (应用手册...)。

 Tomás 您的时间、T Ü V。  

 

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

    您好!Tomás

    错误代码0x13表示远程用户(外围设备、因为中央出现错误)终止了连接。 如果连接超时、您应该会看到错误代码0x08。  有关 HCI 错误代码的更多信息、请参阅蓝牙核心规范、v4.0.0、卷2、部分 D

    这表明 外设通过终止连接导致了此错误、最有可能在应用层发生。 GAP API 可能会导致这一问题、它是  GAPRole_TerminateConnection。  由于  GAPRole_SendUpdateParam 调用错误、也可能调用此 API、其中  handleFailure 设置为  GAPROLE_Terminate_link。 我会仔细检查您的应用中是否存在这些功能以及可能导致这些功能发生的原因;可以使用监听器搜索错误的参数更新来执行进一步的调试。

    有关 GAP 角色 API 的更多信息、请参阅 SDK 的《BLE 软件开发人员指南》第 B 章。可以在  projects\ble\Profiles\roles\CC254x\peripheral.c 中找到外设 GAP 角色 API 定义

    此致!
    Joe

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

    大家好、Joseph 非常感谢您提供的信息。 我给您发送了一条私密消息。

    这是合理的、但我想知道中央控制器如何能够意识到外设已断开连接。
    是否有可能误用这些您在中央控制器中提到的功能并产生相同的效果、或者在这个情况下、消息0x13应该由外设发出。

    我正在进行底层帧监听、因此我在链路层中看到了这条消息。

    我知道它可以通过以下方式生成:
    a)通过强制使用 GAPRole_TerminateConnection 函数来修改应用层、我知道不应该任意调用此函数。
    b)在调用 GAPRole_SendUpdateParam 期间、一些参数不正确。
    虽然从帧来看、一般而言、此过程执行正确。

    此致、TC

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

    您好!Tomás

    由于外设发送了一个连接终止数据包、因此中央器件报告错误代码0x13。 您正确地理解、选项 a)和 b)(在外围设备上)通常会导致此端接。

    我通过电子邮件向您发送了更新信息、因此我将继续并关闭该主题。 如果你有任何需要在电子邮件之外处理的后续操作、我们可以重新打开此主题。

    此致!
    Joe