拉肚肚 发表于 2015-10-30 13:00:55

路过~~~~支持下

chifen 发表于 2015-10-30 13:13:38

标准库支持的,可能直接使用

chifen 发表于 2015-10-30 13:19:26

我今天发现if 语句里最好不要运算的太多 例子: y=1; t=0x20 ;        if(((t&0x80)==0)&&y==1)   这样条件应该成立进入 才对,但这时是进入不了的

wofei1314 发表于 2015-10-30 13:29:04

chifen 发表于 2015-10-30 13:19
我今天发现if 语句里最好不要运算的太多 例子: y=1; t=0x20 ;        if(((t&0x80)==0)&&y==1)   这样条件应该 ...

我就读IO口而已...

windsky-2021230 发表于 2015-10-30 14:20:32

你就用||的方式,一清二楚。
至于为什么单独
if(按键1) if(按键2)
的方式读回来的值都是1,就不要深究了吧。可能是芯片的问题。

windsky-2021230 发表于 2015-10-30 14:23:17

或者这样写试下:

      if(ExButton1())   
      {}
      else
      {
            q_doorcmd = DOOR_STATE_OPEN;
            trig_openstyle = R_TRIG_EXBTN1OPEN;
            RecordDoorState(trig_openstyle,DOOR_STATE_OPEN);//表示应急开门1
      }
      if(ExButton2())
      {}
      else
      {
            q_doorcmd = DOOR_STATE_OPEN;
            trig_openstyle = R_TRIG_EXBTN2OPEN;
            RecordDoorState(trig_openstyle,DOOR_STATE_OPEN);//52='4',表示应急开门2
      }

zhoupxa 发表于 2015-10-30 14:43:38

这个问题一点都不奇葩。
从功能逻辑和C语言语法来看,第一段程序和第二段程序都能在检测到开门按钮1或2按下时完成开门动作(当然第一段程序还有相应的日志记录),只能说是没有正确采集到开门按钮1或2的状态而已,应该从GPIO PE12的输入状态采集是否正确入手DEBUG。
另外,GPIO PE14的状态采集正确吗?

zhoupxa 发表于 2015-10-30 14:45:09

wofei1314 发表于 2015-10-28 21:48
谢谢,同样的程序配置,自然都使能 了时钟,配置了输入模式。。。。。

差别只是用两个if判断还是if(条 ...

尽量从自己的硬件、软件找问题,不要轻易认为编译器或MCU如何如何

wofei1314 发表于 2015-10-30 16:25:39

zhoupxa 发表于 2015-10-30 14:45
尽量从自己的硬件、软件找问题,不要轻易认为编译器或MCU如何如何

同样的板子,说明硬件是一样的,差别只是程序,IO配置都一样,所以才无语,回头试试,看看汇编代码的区别以排除编译器的问题...

wofei1314 发表于 2015-10-30 16:28:28

zhoupxa 发表于 2015-10-30 14:43
这个问题一点都不奇葩。
从功能逻辑和C语言语法来看,第一段程序和第二段程序都能在检测到开门按钮1或2按下 ...

是的,GPIOE 14采集完全正确,GPIOE 12读就一直为1,正确应该为0....

主要是在同样的板子上,同样的按钮触发,但是程序上只有这儿有区别...
页: 1 2 [3] 4
查看完整版本: 奇葩问题,来围观,帮我找错....