AVR单片机串口代码while(!(UCSR0A&(BIT(UDRE0)))) ;

while(!(UCSR0A&(BIT(UDRE0))));UDR0=data;具体是什么意思。UDREO只能是1或0,那么UCSR0A与0X01或者0x02,可是这也不... while(!(UCSR0A&(BIT(UDRE0)))) ;
UDR0=data;
具体是什么意思。
UDREO只能是1或0,那么UCSR0A与0X01或者0x02,可是这也不能证明就可以发送数据呀。
展开
 我来答
he_123456
2013-10-24 · TA获得超过2892个赞
知道大有可为答主
回答量:3162
采纳率:58%
帮助的人:1338万
展开全部

UDREO既不是1,也不是0 ,而是5 。


UCSR0A的Bit5-为1说明发送缓冲器为空,可以把下一个要发送的数据放进去。

while(!(UCSR0A&(BIT(UDRE0)))) ;// 等待发送缓冲区空 
     UDR0=data;                  // 发送
追问
还是不懂呀1,能详细点么?
追答
你用软件环境avr 的头文件中定义了 UDRE0 是一个宏,值是 5

macros.h中有bit(x) 定义,#define BIT(x) (1 << (x));

bit(5) 就是二进制的 00100000
UCSR0A&(BIT(UDRE0)) 就是取出UCSR0A的bit5
while(!(UCSR0A&(BIT(UDRE0)))) ; 的意思就是 如果UCSR0A 的 bit5为0就等在这里
UDR0=data; 的意思就是 ......................这个不用说了吧
qwerqwereqw3
2018-03-31
知道答主
回答量:3
采纳率:0%
帮助的人:2575
展开全部

位 7 – RXCn: USART 接收结束

接收缓冲器中有未读出的数据时 RXCn 置位,否则清零。接收器禁止时,接收缓冲器被刷

新,导致 RXCn 清零。 RXCn 标志可用来产生接收结束中断(见对 RXCIEn 位的描述)。

• 位 6 – TXCn: USART 发送结束

发送移位缓冲器中的数据被送出,且当发送缓冲器 (UDRn) 为空时 TXCn 置位。执行发送

结束中断时 TXCn 标志自动清零,也可以通过写1 进行清除操作。TXCn 标志可用来产生

发送结束中断(见对 TXCIEn 位的描述)。

• 位 5 – UDREn: USART数据寄存器空

UDREn 标志指出发送缓冲器(UDRn)是否准备好接收新数据。UDREn为1说明缓冲器为

空,已准备好进行数据接收。 UDREn 标志可用来产生数据寄存器空中断(见对 UDRIEn

位的描述)。

复位后 UDREn 置位,表明发送器已经就绪。• 位 4 – FEn:帧错误

如果接收缓冲器接收到的下一个字符有帧错误,即接收缓冲器中的下一个字符的第一个

停止位为 0,那么 FEn 置位。这一位一直有效直到接收缓冲器 (UDRn) 被读取。当接收到

的停止位为 1 时, FEn 标志为 "0”。对 UCSRnA进行写入时,这一位要写 "0”。

• 位 3 – DORn: 数据溢出

数据溢出时DORn置位。当接收缓冲器满(包含了两个数据),接收移位寄存器又有数据,

若此时检测到一个新的起始位,数据溢出就产生了。这一位一直有效直到接收缓冲器

(UDRn) 被读取。对 UCSRnA进行写入时,这一位要写 "0”。

• 位 2 – UPEn: USART 奇偶校验错误

当奇偶校验使能 (UPMn1 = 1),且接收缓冲器中所接收到的下一个字符有奇偶校验错误时

UPEn 置位。这一位一直有效直到接收缓冲器 (UDRn) 被读取。对 UCSRnA 进行写入时,

这一位要写 "0”。

• 位 1 – U2Xn: 倍速发送

这一位仅对异步操作有影响。使用同步操作时将此位清零。

此位置1可将波特率分频因子从16降到8,从而有效的将异步通信模式的传输速率加倍。

• 位 0 – MPCMn: 多处理器通信模式

设置此位将启动多处理器通信模式。MPCMn 置位后,USART 接收器接收到的那些不包

含地址信息的输入帧都将被忽略。发送器不受 MPCMn 设置的影响。详细信息请参考

P168” 多处理器通信模式 ” 。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式