串口读写时遇到一个很奇怪的问题
第一段代码没有问题,发送一个字符,回馈一个字符:
- 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,因此永远也进不了循环
[解决办法]
[解决办法]
遇到不却动优先级的时候,我都是加括号()。