AVR 串口通讯没有数据发出 串口缓冲器总不为空

[复制链接]
查看11 | 回复1 | 2012-8-29 10:21:06 | 显示全部楼层 |阅读模式
你要判断UDRE位的状态应该用 if( UCSRA&(1<<UDRE)),UDRE被定义为5,表示处于UCSRA寄存器的第五位,做UCSRA&(1<<UDRE)运算才能判断UDRE位 ,若UDRE位为1,结果是0010 0000b,非零,逻辑为真,可直接作为逻辑结果,但绝不能用是否 ==1 来判断,因为结果根本不是1;若UDRE位为0,则结果为零,逻辑为假,可直接作为逻辑结果也可以用 ==0 或用 !=0来判断,但千万不要用==1或 !=1,这样出来的结果不是你想要的,除非你要判断的位正好是某寄存器的第0位。...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行