zd_2011 发表于 2012-7-6 12:33:10

MDK 代码出现的问题

代码的一部分:
cIRData=0x05 ;
   cIRData=0xfa ;
while (1)          
{       
//        cIRData = ~cIRData ;
        if(cIRData != ~cIRData)//判断接收到指令是不是正确,协议里规定
        {
                                           DelayMs(1000);
                        PinGroupData_A (cIRData);
                        DelayMs(1000);
                        PinGroupData_A (cIRData);       
        }
}
上述代码中if 条件判断不能够正确执行,但是如果加上//屏蔽的那一条之后if代码判断就正确执行,stm32cpu,不知道为什么。。。。?

---------------------
路过的各位请看看吧。。

usingavr 发表于 2012-7-6 13:27:47

注释的那一句影响的判断条件的结果,执行起来当然不一样了。
把你说的”不能够正确执行“说清楚

zd_2011 发表于 2012-7-6 19:39:12

usingavr 发表于 2012-7-6 13:27 static/image/common/back.gif
注释的那一句影响的判断条件的结果,执行起来当然不一样了。
把你说的”不能够正确执行“说清楚 ...

怪我没有事说清楚,是这样的 :
cIRData=0x05 ;
   cIRData=0xfa ;
while (1)         
{         
      if(cIRData != ~cIRData])//      {
                                           DelayMs(1000);
                        PinGroupData_A (cIRData);
                        DelayMs(1000);
                        PinGroupData_A (cIRData);      
      }
}
这种情况下就会执行到if里面的程序,
但是如果
cIRData=0x05 ;
   cIRData=0xfa ;
while (1)         
{         
      cIRData = ~cIRData ;
      if(cIRData != cIRData)//      {
                                           DelayMs(1000);
                        PinGroupData_A (cIRData);
                        DelayMs(1000);
                        PinGroupData_A (cIRData);      
      }
}
这样的就不会执行if里的代码

zd_2011 发表于 2012-7-6 19:40:24

usingavr 发表于 2012-7-6 13:27 static/image/common/back.gif
注释的那一句影响的判断条件的结果,执行起来当然不一样了。
把你说的”不能够正确执行“说清楚 ...

也就是说,一个   
    cIRData = ~cIRData ;
语句放在if(条件)中判断,和在之前先做判断结果不一致
   

usingavr 发表于 2012-7-9 08:40:18

本帖最后由 usingavr 于 2012-7-9 08:43 编辑

zd_2011 发表于 2012-7-6 19:39 static/image/common/back.gif
怪我没有事说清楚,是这样的 :
cIRData=0x05 ;
   cIRData=0xfa ;


说反了吧

apple_03 发表于 2012-7-9 09:19:18

cIRData 要先说清楚吧,半拉子的说就不要说了
页: [1]
查看完整版本: MDK 代码出现的问题