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.

[参考译文] TM4C1294NCPDT:禁用 UART 内部环回模式

Guru**** 2529900 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1253333/tm4c1294ncpdt-disable-uart-internal-loopback-mode

器件型号:TM4C1294NCPDT

处理一个使用多个 UART 进行通信的应用、并希望具有使用 Tivaware UARTLoopbackEnable 的内置测试、以运行简单的回送测试、以确认数据是否正确发送和处理。 但是、我没有找到将更改恢复为内部回送的任何命令。 最佳做法是什么?

我想到但尚未测试的解决方案如下:  
内置测试后禁用所有 UART、然后重新启用、希望这些 UART 以默认方式出现。  
在成功进行内置测试后重新启动电路板(这不是一个好的解决方案)。  
内置测试不使用内部环回。  

欢迎提出任何建议。  

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

    您好!

     出于某种原因、没有 API 来禁用环回模式。 不过、读取  UARTLoopbackEnable 的源代码、只需设置 UART_CTL_LBE 位即可启用环回。 完成环回测试后、您可以使用 HWREG  在 UART_O_CTL 寄存器中手动清除 UART_CTL_LBE。  

    //*****
    //
    //! 为 UART 端口启用内部环回模式
    //!
    //! \param ui32Base 是 UART 端口的基地址。
    //!
    //! 此函数将 UART 端口配置为内部回送模式、以帮助
    //! 诊断和调试。 在该模式下、的发送和接收终端
    //! 同一 UART 端口在内部连接。 因此、传输的数据
    //! 即在 UxRx 输入上接收到 UnTx 输出时、
    //! I/O 的地址。 UARTCharPut ()、UARTCharGet ()函数可以同时使用
    //! 完成的。
    //!
    //! \无返回。
    //
    //*****
    空 UARTLoopbackEnable (uint32_t ui32Base)
    {
    //
    //检查参数。
    //
    assert (_UARTBaseValid (ui32Base));

    //
    //将环回使能位写入寄存器。
    //
    HWREG (ui32Base + UART_O_CTL)|= UART_CTL_LBE

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

    我在我的 UART.H 或 UART.C 库文件中没有看到 UART_CTL_LBE 的值。 您知道我必须在 HWREG 中输入什么值才能清除它吗?  

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

    您好!

     它们在头文件 C:\ti\TivaWare_C_Series-2.2.0.295\inc\hw_uart.h 中进行定义。