2019-03-26 15:21发布
qingtenglei 发表于 2015-9-9 10:27 在if那就进不去,改成1进去后 while((DATA==1)&&U8FLAG++);跳不出。
最多设置5个标签!
{
unsigned char i,U8comdata=0;
for(i=0;i<8;i++)
{
U8FLAG=2;
while((DATA==0)&&U8FLAG++);
DELAY_US(30);
U8comdata=U8comdata<<1;
if(DATA==1){
U8FLAG=2;
U8comdata=U8comdata|0x01;
while((DATA==1)&&U8FLAG++);
}
}
return U8comdata;
}
在while((DATA==1)&&U8FLAG++);就出不去了
——这样的语句你从哪看来的?想实现什么功能?怎么越看越觉得怪怪的呢?
while里面是空语句,那么只有当while失效的时候会跳出
DATA==1如果成立,你们这半句就恒真,如果DATA==0,那么这半句恒假,和后面语句逻辑与之后亦假,直接失效跳出。
那么我们看如果DATA==1,那么它会在什么时候失效跳出吧
后面半句U8FLAG++,U8FLAG初值2,每执行一次空循环自增1,不管U8FLAG等于多少,只要它不是0那么就算逻辑真,那么它什么时候会等于0呢?只有当U8FLAG溢出的时候才能等于0。但是,你将一个变量从2自增到溢出,又不调用这个变量,反正我没看懂你想实现什么功能……
想问一下,楼主问题解决了吗,我最近也在做这个小项目,也是在If那里进不去,到现在都不知道怎么回事
一周热门 更多>