工具/软件:Code Composer Studio
尊敬的 UCD 专家:
大家好、我最近刚接触了 UCD3138芯片、我想测试串行端口功能、相关代码如图所示。 使用"存储器调试"、您可以看到数据被发送到串行端口寄存器、但在使用串行端口工具进行调试时不会发出任何数据、并且在使用示波器测量 UART 的 TX 引脚时没有波形。 我想知道 GPIO 设置是否有问题? 希望您能回答、谢谢。
此致、
平移
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.
工具/软件: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';//输出一个字节来启动操作。
}