avr
单片?/p>
USART
串口通讯初始化配置说?/p>
avr
atmega16
单片?/p>
通用同步和异步串行接收器和转发器
(USART)
是一个高度灵活的串行通讯设备,其工作模式及其初始化,寄存器说明如下?/p>
//*******************
USART
控制和状态寄存器
A
?/p>
UCSRA
?/p>
***************
/*USART
控制和状态寄存器
A
?/p>
UCSRA
?/p>
bit7
bit6
bit5
bit4
bit3
bit2 bit1
bit0
RXC
TXC
UDRE
FE
DOR
PE
U2X
MPCM
RXC
:
USART
接收结束
接收缓冲器中有未读出的数据时
RXC
置位,否则清零。接收器禁止时,接收缓冲?/p>
被刷新,导致
RXC
清零?/p>
RXC
标志可用来产生接收结束中?/p>
TXC
:
USART
发送结?/p>
发送移位缓冲器中的数据被送出,且当发送缓冲器
(UDR)
为空?/p>
TXC
置位。执?/p>
发送结束中断时
TXC
标志自动清零?/p>
也可以通过?/p>
0
进行清除操作?/p>
TXC
标志可用来产?/p>
发送结束中?/p>
(
见对
TXCIE
位的描述
)
?/p>
UDRE
:
USART
数据寄存器空
UDRE
标志指出发送缓冲器
(UDR)
是否准备好接收新数据?/p>
UDRE
?/p>
1
说明缓冲器为
空,已准备好进行数据接收?/p>
UDRE
标志可用来产生数据寄存器空中断复位后
UDRE
置位?/p>
表明发送器已经就绪?/p>
FE
:
帧错?/p>
如果接收缓冲器接收到的下一个字符有帧错误,即接收缓冲器中的下一个字符的?/p>
一个停止位?/p>
0
,那?/p>
FE
置位。这一位一直有效直到接收缓冲器
(UDR)
被读取。当接收?/p>
的停止位?/p>
1
时,
FE
标志?/p>
0
。对
UCSRA
进行写入时,这一位要?/p>
0
?/p>
DOR
:
数据溢出
数据溢出?/p>
DOR
置位。当接收缓冲器满
(
包含了两个数?/p>
)
,接收移位寄存器又有
数据?/p>
若此时检测到一个新的起始位?/p>
数据溢出就产生了?/p>
这一位一直有效直到接收缓冲器
(UDR)
被读取。对
UCSRA
进行写入时,这一位要?/p>
0
?/p>
PE
:
奇偶校验错误
当奇偶校验使?/p>
(UPM1
1)
,且接收缓冲器中所接收到的下一个字符有奇偶校验错误
?/p>
UPE
置位?/p>
这一位一直有效直到接收缓冲器
(UDR)
被读取?/p>
?/p>
UCSRA
进行写入时,
一