UDR(UART数据寄存器)问题

时间:2015-08-09 13:13:17

标签: interface microcontroller avr uart

我无法理解以下含义“USART发送数据缓冲寄存器(TXB)和USART接收数据缓冲寄存器(RXB)共享相同的I / O地址”有两个数据寄存器。它们共享的方式同一地址?

3 个答案:

答案 0 :(得分:2)

现在很清楚了 enter image description here 从图中可以看出,发送器和接收器共用UDR(UART数据寄存器)。实际上它们只共享UDR地址:“实际”寄存器分为发送器和接收器寄存器,这样接收的数据就不能覆盖写入发送寄存器的数据。因此,您无法读回写入发送器寄存器的数据。

答案 1 :(得分:1)

TXB和RBX的寄存器地址相同,实际寻址的寄存器由UART的模式(读或写模式)决定。这取决于实际的实现,但通常包括设置一个或两个以上的引脚。

答案 2 :(得分:0)

您可以将UDR寄存器视为TXD和RXD寄存器之间的缓冲区。 如您所知,UART是在总线中逐位发送的,当接收到的位进入RXD寄存器时,当收到所有字节时,它被复制到UDR寄存器并且标志被提升,现在您应该读取UDR寄存器,如果你写信给它会丢失收到的字节!!

通过相同的传输方式,您可以在UDR中写入一个字节,然后将其移至TXD,然后逐位逐位输出,并且在传输过程中UDR为空。

这就是当UDR变为空时UDR中断,以及传输完成时TXD中断的原因。