主题中讨论的其他器件:UCD3138
尊敬的 TI 员工:
我对 UART 有一些问题。 以下代码是 UART 的 Init 演示代码。
我的问题是:
-
为什么它在通过设置 Uart0Regs.UARTCTRL3.bit.SW_RESET = 1来配置其他控制寄存器后实现软件复位?
-
为什么初始化结束时总是会有一个“Uart0Regs.UARTTXBUF.ALL =';”?
-
是否通过 UART 软件复位来清除 RXRDY 标志?
-
为什么在将0xff 写入 UARTINTST 后它会向 UARTINTST 写入0? 根据数据表声明(如下所示)、只需向位写入1即可清除标志。
R/C-表示该位可以被读取或清除;除了 RXERR 和总线忙外的每个位都可以通过写1清零。 (第430页、《UCD3138数字电源控制器技术参考手册》)
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.bit_BAUD_DIV_H = 0;
Uart0Regs.UARTMBAUD.bit.BAUD_DIV_M = 0;
Uart0Regs.UARTLBAUD.bit.BAUD_DIV_L = 49;//对于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_BYTE = Uart1Regs.UARTRXBUF.bit.RXDAT;//清除 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 =';//输出一个字节来启动操作。
期待您的回复
此致
黄达纳