你好!欢迎来到深圳市颖特新科技有限公司!
语言
当前位置:首页 >> 技术中心 >> 单片机入门 >> AVR单片机UCSRC 和UBRRH 共用地址的问题

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

关键字:AVR单片机 寻址 寄存器 作者:admin 来源:不详 发布时间:2018-05-18  浏览:1

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的值。

编辑:admin  最后修改时间:2018-05-18

联系方式

0755-82591179

传真:0755-82591176

邮箱:vicky@yingtexin.net

地址:深圳市龙华区民治街道民治大道973万众润丰创业园A栋2楼A08

Copyright © 2014-2023 颖特新科技有限公司 All Rights Reserved.  粤ICP备14043402号-4