×
单片机 > 单片机程序设计 > 详情

AVR单片机UCSRC 和UBRRH 共用地址的问题

发布时间:2020-05-29 发布时间:
|

UCSRC寄存器结构:

UBRRH寄存器结构:

AVR单片机UART的UCSRC和UBRRH两个寄存器是共用地址的,通过最高位的URSEL来选择更新哪个数据。

比如写UCSRC=0x86,那么0x86的最高位Bit7=1,所以这组数据会更新UCSRC的值

写UBRRH=0x01,那么0x01的最高位Bit7=0,所以这组数据会更新UBRRH的值

无需专门更新URSEL的值。

如果写成了UBRRH=0x81,那么就会去更新UCSRC的值,是自动识别的。

在网上看到有朋友问:为什么在程序中写UBRRH的时候没有先将URSEL置0?

而是直接设置

UBRRH=BAUD_H;

UBRRL=BAUD_L;

现在大家应该明白了吧,只要写入的BUAD_H的最高位为0,即BAUD_H&0x80==0,就会自动更新UBRRH的值,无需专门设置URSEL的值。

关键字:AVR单片机  UCSRC  UBRRH  共用地址 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
MSP430F5529 上手小例程2