【发布时间】:2015-08-09 13:13:16
【问题描述】:
我无法理解以下“USART 发送数据缓冲寄存器 (TXB) 和 USART 接收数据缓冲寄存器 (RXB) 共享同一个 I/O 地址”的含义。有两个数据寄存器。它们如何共享同一个地址?
【问题讨论】:
标签: interface microcontroller avr uart
我无法理解以下“USART 发送数据缓冲寄存器 (TXB) 和 USART 接收数据缓冲寄存器 (RXB) 共享同一个 I/O 地址”的含义。有两个数据寄存器。它们如何共享同一个地址?
【问题讨论】:
标签: interface microcontroller avr uart
TXB 和 RBX 的寄存器地址相同,实际寻址的寄存器取决于 UART 所处的模式(读取或写入模式)。这取决于实际的实现,但通常是设置一个或两个以上的引脚。
【讨论】:
您可以将 UDR 寄存器视为 TXD 和 RXD 寄存器之间的缓冲区。 如您所知,UART 是在总线中逐位发送的,当接收位进入 RXD 寄存器时,当接收到所有字节时,它会复制到 UDR 寄存器并引发标志,现在您应该读取 UDR 寄存器,如果你写它你会丢失收到的字节!
传输时同理,将a字节写入UDR,然后移动到TXD,然后逐位从寄存器输出,传输过程中UDR为空。
这就是为什么 UDR 有中断,当 UDR 为空时,而 TXD 有中断,当传输完成时。
【讨论】: