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.

[参考译文] CC1312R:EasyLink_transmitASYNC 不会返回回调

Guru**** 2468460 points


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

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1458716/cc1312r-easylink_transmitasync-does-not-return-to-call-back

器件型号:CC1312R

工具与软件:

您好论坛!

在我们的一个代码中使用 Easylink_transmitASYNC 时、我们遇到了一个独特的问题。 调用 Easylink_transmitASYNC 后、有时永远不会到达回调函数。 在这种情况下、我们如何知道导致这种情况的原因或错误代码? 软复位或硬件循环通电可解决问题。 无论哪种方式、按照我们的理解、该问题都与硬件无关。 这种情况非常罕见、在我们的应用中、这种情况在极长的上电周期内24小时发生一次。  

根据 Easylink_transmitASYNC 的以下描述、与成功调度相关的"if"条件需要消歧。 根据我的理解、如果调度没有正确完成、回拨可能永远无法到达。 在这种情况下、应采用哪种适当的方法使代码恢复正常功能? 系统重置? 不能选择硬件下电上电。 我们正在寻找适当的解决方案来解决这个问题。

说明:

发送带有非阻塞呼叫的数据包。

此函数是用于发送数据包的非阻塞调用。 如果成功安排了 Tx、则在 Tx 完成后将调用回调。

此致、M

Maaz Ali Awan  

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

    你好、Maaz

    很难给出任何建议,你应该如何处理这一点,没有充分了解如何 在你的代码中使用 Easylink_transmitASYNC ,以及在那里做什么。

    一般情况下、我建议您设法弄清楚为什么 TX 未被执行、而不是弄清如何从其中恢复(我假设您永远不会安排不打算运行的 TX)

    为了进行调试、您可以在某些 DIO 上输出 PA (CPE_GPO1)和 LNA (CPE_GPO0)信号、以查看器件何时处于 RX 和 TX 中(请参阅 将射频内核信号路由到物理引脚—SimpleLink CC13XX/CC26XX SDK 专有射频用户指南6.30.00文档 )。

    我还希望在您每次安排 TX 或 RX 时切换一些引脚、然后使用逻辑分析仪监控所有这些信号、以尝试找出在您安排的 TX 未导致无线电进入 TX 模式的情况下发生的情况。

    如果可以找到执行此操作的模式、则应在连接调试器的情况下运行、并检查 TTX 命令的状态、看看它是否可以指示正在发生什么(EasyLink_cmdPropTxAdv.status)。

    由于我不知道您在代码中执行什么操作、因此很难推荐如何检测正在发生这种情况。

    我假设在安排 TX 时、应用程序知道应该何时发生、因此实施超时可以作为解决方案。 您可以在安排 TX 时启动计时器、然后、在为 TX 发生给定的时间后、您可以检查 TX 命令的状态以查看其是否已运行、然后采取相应的操作。

    我很抱歉,我不能给你任何更具体的建议。

    BR

    Siri