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.

[参考译文] IWRL1432BOOST:UART 处于中断模式

Guru**** 2455560 points
Other Parts Discussed in Thread: IWRL1432, SYSCONFIG

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

https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/1499785/iwrl1432boost-uart-in-interupt-mode

器件型号:IWRL1432BOOST
Thread 中讨论的其他器件:IWRL1432SysConfig

工具/软件:

您好 TI 支持部门、

我目前正在使用 IWRL1432板 公式 液位检测应用 我有几个关于的问题 UART 功能

  1. 要将传感器数据发送到串行监视器、我使用CLI_write()dpc.c文件中的函数(下面附上了代码片段)。 我可以在显示器上看到数据。 您能否确认这是否为推荐的方法?
  2. 现在、我想看看 接收用户命令 外部 MCU 或串行监视器 位置 UARTA 处于中断模式
    • 我在中启用了 UARTA 其中概述了 SysConfig 文件并选择 EOC 中断 选项。
    • 但是、更改后、我遇到了几个错误(随附于下文)。
    • 我的问题是:我是否需要实施 UART 回调函数 来处理中断? 如果是、请指导我继续 回调函数在何处放置 如何正确集成它?
  3. 是否可以在代码中一次同时使用这两个 UART?

期待您的支持。

此致、

Swasthik。

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

    尊敬的 Swasthik:  

    我对反应迟缓表示歉意。 感谢您的耐心。 以下是您问题的一些答案。  

    1.不建议将 cli_write()用于向主机输出数据。 CLI_Write 主要用于调试目的。 演示应用程序已经通过 UART 在中输出数据  

    mmw Demo_Transmit。进程 sedOutputTask ()(在 level_sensing.c 中)。
    2.如果选择回调模式,则需要回调函数。 您应该能够将其置于 Level_sensing.c 中 此外、您可以参考 SDK 中的 UART 回显回调示例、了解如何完成此操作。 ({mmwave_SDK5_install}\examples\drivers\uart\uart_echo_callback)
    3. 你能澄清一下你在这里的意思吗? 您的意思是是否可以同时启用两个 UART? 或者您是指同时写入两个 UART 吗?
    此致、
    Josh  
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Josh Dye:

    mmwDemo_TransmitProcessedOutputTask()在中查看了函数level_sensing.c、我注意到它包含了大量的处理和数据处理。 但是、我只需要通过 UART 提取并发送距离数据(从物体到传感器)。

    您能否通过共享仅通过 UART 发送距离数据所需的代码片段或修改来提供帮助?

    此外,只是澄清—是的,我们计划使用两个 UART :

    • 一个 UART、用于传输距离数据输出。
    • 另一个 UART、用于从外部源接收用户命令。

    此致、
    Swasthik

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

    尊敬的 Swasthik:  

    感谢您的澄清。 可以使用您描述的 UART、但您需要进行一些更改、因为演示代码默认不支持它。  所需的修改包括 在 SysConfig (Level_sensing.syscfg)中启用第二个 UART 实例。 然后、只需确保 CLI 和 transmitDataOutput 任务使用正确的 UART 句柄。

    在液位感应演示中、检测到的距离作为点云的一部分输出。 这是执行此操作的代码片段:

    mmw_UartWrite (uartHandle, (uint8_t*)&gMmwMssMCB.pointCloudToUart, sizeof(MmwDemo_output_message_tl) + tl[tlvIdx].length);

    此致、

    Josh

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

    尊敬的 Josh Dye:

    然后确保 CLI 和 transmitDataOutput 任务使用正确的 UART 句柄。

    我检查了两个处理程序。 在mmwDemo_TransmitProcessedOutputTask()函数中、UART 句柄为:

    UART_handle uartHandle = gUartHandle[0];
    在 CLI 写入函数中、UART 句柄为:

    UART_Handle uartWriteHandle;
    #if (CLI_removal == 0)
       uartWriteHandle = gcli.cfg.UartHandle;
    #endif
    因此、如果我将中的 UART 句柄更mmwDemo_TransmitProcessedOutputTask()改为gCLI.cfg.UartHandle如下所示使用:

    uart_handle uartHandle = gcli.cfg.UartHandle;

    然后我是否能够在串行监视器中接收输出(因为 CLI 和输出现在使用相同的 UART)?

    这是正确的方法吗?

    谢谢&&此致

    Swasthik

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

    尊敬的 Swasthik:  

    我不确定这是否能完成您尝试做的事情。 您之前提到过使用单独的 UART 输出数据和 CLI。是否仍需要此功能?

    gcli.cfg.UartHandle 和   gUartHandle[0]在演示代码中已经是等效的、因此您显示的修改实际上没有效果。 这是因为 Level_sening ()中的这一行。 gcli.cfg.UartHandle 等效于 gMmwMssMCB.commandUartHandle。  

    gMmwMssMCB.commandUartHandle = gUartHandle[0];

    我很抱歉这里的混淆。 您能帮助我了解您尝试实现的主要目标吗?

    此致、

    Josh

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

    你好 Josh Dye、

    很抱歉之前的混淆。

    第一个目标低于1、

    我想查看 仅显示来自液位感测应用的距离数据 在串行监视器上。 以前,我看到的是通过一个变量传递距离值到CLI_write函数,它位于 dpc.c below is the variable.

        gMmwMssMCB.cfarDetObjOut[i]。y       = level_meas / 10000.0;//缩放 mea (以 m 为单位)

    您能指导我如何正确查看和传递数据吗?
    运行演示代码时、我无法在串行显示器上收到任何输出。 我想了解需要修改或配置哪些内容以确保数据(特别是距离值)在串行终端上正确传输和可见。

    谢谢!
    Swasthik。

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

    尊敬的 Swasthik:  

    好的、谢谢。 为了进行澄清、在 xWRLx432示例中  guiMonitor  配置命令指示通过 UART 传输到主机的数据。 然后、将会发出所选数据  二进制格式 、这就是为什么在发送串行终端上显示的配置数据后、  这些数据似乎由乱码的不可理解字符组成。 我们的可视化工具接收该二进制 UART 数据并根据定义的 TLV 格式对其进行解码/解析。  可以在主机 MCU 上实现相同的数据解析。  

    当您说"在串行终端上可见"时、您的意思是这些值应该是人类可读的吗? 如果是、则确实应使用 cli_write。 在这种情况下、您可能还需要禁用所有 TLV 输出、以便您可以实际看到串行监视器中的数据(这将通过对 guiMonitor 放置全0来实现)。 我很好奇、这是否只是为了调试目的、以便 在数据从器件发出时读取数据? CLI_write 可能很慢、因此通常可能会导致问题。 然而、由于您只对检测到的 距离 数据感兴趣 、因为每帧的距离数据都很小、因此可能没问题。

    此致、

    Josh