读书人

串口读写时遇到一个很奇怪的有关问题

发布时间: 2012-11-09 10:18:48 作者: rapoo

串口读写时遇到一个很奇怪的问题
第一段代码没有问题,发送一个字符,回馈一个字符:

Assembly code
if(rUTRSTAT0 & 0x1)            c = (unsigned char)rURXH0;            while(rUTRSTAT0 & 0x4 == 0);            rUTXH0 = c;        }

第二段代码就有问题了,同样一个意思,发送一个字符,不停地回馈这个字符:
Assembly code
while(rUTRSTAT0 & 0x1 == 0);            c = (unsigned char)rURXH0;            while(rUTRSTAT0 & 0x4 == 0);            rUTXH0 = c;

或者这样也是一样的:
Assembly code
if(rUTRSTAT0 & 0x1 == 0) continue;            c = (unsigned char)rURXH0;            while(rUTRSTAT0 & 0x4 == 0);            rUTXH0 = c;

求解释啊!!!

[解决办法]
&操作符请用括号,看C语言语法

0x01==0永远是FALSE,因此永远也进不了循环
[解决办法]
探讨
&操作符请用括号,看C语言语法

0x01==0永远是FALSE,因此永远也进不了循环

[解决办法]
遇到不却动优先级的时候,我都是加括号()。

读书人网 >单片机

热点推荐