avr单片机USART串口通讯初始化配置说明 下载本文

内容发布更新时间 : 2024/5/3 19:58:00星期一 下面是文章的全部内容请认真阅读。

avr单片机USART串口通讯初始化配置说明

avr atmega16 单片机通用同步和异步串行接收器和转发器 (USART) 是一个高度灵活的串行通讯设备,其工作模式及其初始化,寄存器说明如下。

//*******************USART控制和状态寄存器A(UCSRA)*************** /*USART 控制和状态寄存器A(UCSRA)

bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 RXC TXC UDRE FE DOR PE U2X MPCM RXC: USART 接收结束

接收缓冲器中有未读出的数据时RXC 置位,否则清零。接收器禁止时,接收缓冲器被刷新,导致RXC 清零。RXC 标志可用来产生接收结束中断 TXC: USART 发送结束

发送移位缓冲器中的数据被送出,且当发送缓冲器 (UDR) 为空时TXC 置位。执行发送结束中断时TXC 标志自动清零,也可以通过写0进行清除操作。TXC 标志可用来产生发送结束中断( 见对TXCIE 位的描述)。 UDRE: USART 数据寄存器空

UDRE标志指出发送缓冲器(UDR)是否准备好接收新数据。UDRE为1说明缓冲器为空,已准备好进行数据接收。UDRE标志可用来产生数据寄存器空中断复位后UDRE 置位,表明发送器已经就绪。 FE: 帧错误

如果接收缓冲器接收到的下一个字符有帧错误,即接收缓冲器中的下一个字符的第一个停止位为0,那么FE 置位。这一位一直有效直到接收缓冲器(UDR) 被读取。当接收到的停止位为1 时, FE 标志为0。对UCSRA 进行写入时,这一位要写0。 DOR: 数据溢出

数据溢出时DOR 置位。当接收缓冲器满( 包含了两个数据),接收移位寄存器又有数据,若此时检测到一个新的起始位,数据溢出就产生了。这一位一直有效直到接收缓冲器(UDR) 被读取。对UCSRA 进行写入时,这一位要写0。 PE: 奇偶校验错误

当奇偶校验使能(UPM1 1),且接收缓冲器中所接收到的下一个字符有奇偶校验错误时UPE 置位。这一位一直有效直到接收缓冲器 (UDR) 被读取。对UCSRA 进行写入时,一

位要写0。 U2X: 倍速发送

这一位仅对异步操作有影响。使用同步操作时将此位清零。此位置1可将波特率分频因子从16降到8,从而有效的将异步通信模式的传输速率加倍。 MPCM: 多处理器通信模式

设置此位将启动多处理器通信模式。MPCM置位后,USART 接收器接收到的那些不包含地址信息的输入帧都将被忽略。发送器不受MPCM设置的影响。 */

//*******************USART控制和状态寄存器 B(UCSRB)**************** /* USART控制和状态寄存器 B(UCSRB)

bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 RXCIE TXCIE UDRIE RXEN TXEN UCSZ2 RXB8 TXB8 RXCIE: 接收结束中断使能

置位后使能RXC中断。当RXCIE为1,全局中断标志位SREG置位,UCSRA寄存器的RXC亦为1时可以产生USART接收结束中断。 TXCIE: 发送结束中断使能

置位后使能TXC中断。当TXCIE为1,全局中断标志位SREG置位,UCSRA寄存器的TXC亦为1时可以产生USART发送结束中断。 UDRIE: USART 数据寄存器空中断使能

置位后使能UDRE中断。当UDRIE 为1,全局中断标志位SREG置位,UCSRA寄存器的UDRE亦为1时可以产生USART数据寄存器空中断。 RXEN: 接收使能

置位后将启动USART接收器。RxD 引脚的通用端口功能被USART功能所取代。禁止接收器将刷新接收缓冲器,并使 FE、DOR及PE标志无效。 TXEN: 发送使能

置位后将启动将启动USART发送器。TxD引脚的通用端口功能被USART功能所取代。TXEN 清零后,只有等到所有的数据发送完成后发送器才能够真正禁止,即发送移位寄存器与发送缓冲寄存器中没有要传送的数据。发送器禁止后,TxD引脚恢复其通用I/O功能。

UCSZ2: 字符长度

UCSZ2与UCSRC寄存器的UCSZ1:0结合在一起可以设置数据帧所包含的数据位数(字符长度)。

RXB8: 接收数据位8

对9位串行帧进行操作时,RXB8 是第9个数据位。读取UDR包含的低位数据之前首先要读取RXB8。 TXB8: 发送数据位8

对9位串行帧进行操作时,TXB8是第9个数据位。写UDR之前首先要对它进行写操作。 */

//***********************状态寄存器 C(UCSRC)*********************** /* 状态寄存器 C(UCSRC)

bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 URSEL UMSEL UPM1 UPM0 USBS UCSZ1 UCSZ0 UCPOL UCSRC寄存器与UBRRH寄存器共用相同的I/O地址。对该寄存器的访问。 URSEL: 寄存器选择

通过该位选择访问UCSRC寄存器或UBRRH寄存器。 当读UCSRC时,该位为1 ;当写UCSRC时,URSEL为1。 URSEL 为 0 ,对UBRRH 值更新; 若 URSEL 为 1 ,对UCSRC 设置更新

UMSEL: USART 模式选择

通过这一位来选择同步或异步工作模式。 UMSEL设置

UMSEL 模式 0 异步操作 1 同步操作 UPM1:0: 奇偶校验模式

这两位设置奇偶校验的模式并使能奇偶校验。如果使能了奇偶校验,那么在发送数据,发送器都会自动产生并发送奇偶校验位。对每一个接收到的数据,接收器都会产生一奇偶值,并与UPM0 所设置的值进行比较。如果不匹配,那么就将UCSRA 中的PE 置位。 UPM 设置