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.

[参考译文] CCS/UCD3138:解决了 UCD3138:UART TX 引脚无输出

Guru**** 2538955 points
Other Parts Discussed in Thread: UCD3138

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/947194/ccs-ucd3138-resolved-ucd3138-uart-tx-pin-has-no-output

器件型号:UCD3138

工具/软件:Code Composer Studio

尊敬的 UCD 专家:

大家好、我最近刚接触了 UCD3138芯片、我想测试串行端口功能、相关代码如图所示。 使用"存储器调试"、您可以看到数据被发送到串行端口寄存器、但在使用串行端口工具进行调试时不会发出任何数据、并且在使用示波器测量 UART 的 TX 引脚时没有波形。 我想知道 GPIO 设置是否有问题? 希望您能回答、谢谢。

此致、

平移

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

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

    嗯、有一点、你不需要将 SW_RESET 设置回1、以使其正常工作。  您也没有发出字节来启动开发。  我认为这是 char_out 正常工作所必需的。  我认为在第一个字节消失之前、TX_Rdy 不起作用。

    请尝试以下代码:

    void init_uart0 (void)

    易失性 uint32 rx_Byte0;//volatile、用于发出关于设置但不读取的警告

    Uart0Regs.UARTCTRL3.bit.SW_RESET = 0;//初始化 UART 时软件复位

    Uart0Regs.UARTCTRL0.bit.data_size = 7;//8位
    Uart0Regs.UARTCTRL0.bit.STOP = 1;/2停止位
    Uart0Regs.UARTCTRL0.bit.SYNC_MODE = 1;//异步模式

    Uart0Regs.UARTHBAUD.ALL = 0;
    Uart0Regs.UARTMBAUD.ALL =波特率值 M;
    Uart0Regs.UARTLBAUD.ALL = BAUD_RATE _VALUE L;//对于38400 //对于控制板为47,对于开环为44

    Uart0Regs.UARTRRXST.bit.RX_ENA=1;//启用 RX

    Uart0Regs.UARTTXST.bit.TX_ENA=1;//启用 TX

    UART0Regs.UARTINTST.ALL = 0xff;//这两条语句应清除状态位
    Uart0Regs.UARTINTST.ALL = 0;

    RX_BYTE0 = Uart0Regs.UARTRXBUF.ALL;//清除 RXRDY 标志

    Uart0Regs.UARTIOCTRLTX.bit.IO_FUNC = 1;//启用发送引脚
    Uart0Regs.UARTIOCTRLRX.bit.IO_FUNC = 1;//启用接收引脚

    Uart0Regs.UARTCTRL3.bit.clock = 1;//内部时钟选择;
    Uart0Regs.UARTCTRL3.bit.SW_RESET = 1;//软件复位已释放 UART 初始化完成?

    Uart0Regs.UARTIOCTRLSCLK/bit.IO_FUNC = 0;//禁用 UART 的外部时钟。

    Uart0Regs.UARTTXBUF.ALL ='\n';//输出一个字节来启动操作。