【电子资讯】数据寄存器—UDRn
USART0发送数据缓冲寄存器和USART0接收数据缓冲寄存器共享相同的I/O地址,称为USART0数据寄存器或UDR。将数据写入UDR时实际操作的是发送数据缓冲器存器(TXB),读UDR时实际返回的是接收数据缓冲寄存器(RXB)的内容。
在5、6、7比特字长模式下,未使用的高位被发送器忽略,而接收器则将它们设置为0。只有当UCSRA寄存器的UDRE标志置位后才可以对发送缓冲器进行写操作。如果UDRE没有置位,那么写入UDR的数据会被USART发送器忽略。当数据写入发送缓冲器后,若移位寄存器
为空,则发送器把数据加载到发送移位寄存器,然后数据串行地从TxD引脚输出。接收缓冲器包括一个两级FIFO,一旦接收缓冲器被寻址,FIFO就会改变它的状态,因此,不要对这一存储单元使用“读—修改—写指令(SBI和CBI)”。使用位查询指令(SBIC和SBIS)时也要小心,因为这也有可能改变FIFO的状态。
电子街推荐阅读