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.

[参考译文] SIMPLELINK-CC13X2-26X2-SDK:UART2_EVENT_TX_BEGIN 的多个事件回调

Guru**** 2473260 points


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

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1391945/simplelink-cc13x2-26x2-sdk-multiple-event-callbacks-for-uart2_event_tx_begin

器件型号:SIMPLELINK-CC13X2-26X2-SDK

工具与软件:

通过在 simplelink 7.10.01.24中使用 UART2、我们会在回调模式下启动 UART 传输时遇到多个事件回调。 这有点让人困惑、我们需要增加一些功能来应对。 在 Simplelink SDK 中的 UART2.c 第575行中、可以看到以下代码:

   /* Invoke event callback if necessary */
    if ((object->eventMask & UART2_EVENT_TX_BEGIN) && object->eventCallback)
    {
        object->eventCallback(handle, UART2_EVENT_TX_BEGIN, 0, object->userArg);
    }

    key = HwiP_disable();

    /* Start TX transaction */
    UART2Support_dmaStartTx(handle);

    HwiP_restore(key);

在此、触发事件回调 UART2_EVENT_TX_BEGIN。 但是、它也会在 稍后调用的函数 UART2Support_dmaStartTx 内触发。 下面是 UART2CC26XX2.c 中的第612行:

        if ((object->eventMask & UART2_EVENT_TX_BEGIN) && object->eventCallback)
        {
            object->eventCallback(handle, UART2_EVENT_TX_BEGIN, 0, object->userArg);
        }

这是预期行为吗?

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

    嗨、Frode、

    实际上、我设法通过触发 DMA 传输(使用更长的 UART 缓冲区进行传输)来重现该问题。 我将报告该错误。

    事实上,它似乎不是有意的。

    此致、

    Arthur