wofei1314 发表于 2015-10-30 16:29:20

windsky-2021230 发表于 2015-10-30 14:23
或者这样写试下:

      if(ExButton1())   


这试过了,调试模式,GPIOE12读回来一直是1,硬件外面接下拉读回来也还是1

zhoupxa 发表于 2015-11-2 10:09:11

wofei1314 发表于 2015-10-30 16:28
是的,GPIOE 14采集完全正确,GPIOE 12读就一直为1,正确应该为0....

主要是在同样的板子上,同样的按钮 ...

两块板子上程序不同,可能是程序问题
但是也不排除硬件问题啊

wofei1314 发表于 2015-11-2 17:44:03

zhoupxa 发表于 2015-11-2 10:09
两块板子上程序不同,可能是程序问题
但是也不排除硬件问题啊

是同样的硬件,两个程序。。。。

hjl2832 发表于 2015-11-3 16:27:40

楼主还没明白意思,大伙说的是你第二种写法里,如果第一个条件(PE14)成立,就没有检测第2个条件了,因为它会直接进入条件里面的子程序了。所以这时候你能看到执行了开门操作。实际调试时,你的第1种写法才真正发现了问题。实际是你的PE12本来就是读的高电平。
你要把PE14人为设为高电平,再去调试第2种,看看问题吧。

wofei1314 发表于 2015-11-4 09:44:19

本帖最后由 wofei1314 于 2015-11-4 09:46 编辑

hjl2832 发表于 2015-11-3 16:27
楼主还没明白意思,大伙说的是你第二种写法里,如果第一个条件(PE14)成立,就没有检测第2个条件了,因为 ...
首先感谢你的回答,其次可能是我表达方式不好....

if(条件1或者条件2)这种,实际运行的时候,不管是条件1触发还是条件2触发,都能通过寄存器看出来!!!另外,条件2就是PE12这个IO口,你的意思是PE12接地后,PE12读回的还是高电平,是PE14变低了所以这个判断才成立,门开了??
PE14和PE12都是有上拉的,不需要调,读回的就应该是高电平,只有按键按下了,读回的才是低电平好吗,PE14和PE12是两个独立的IO,硬件上接的是两个独立按键的,这样的表述是不是就明白了?

jiaswang 发表于 2015-11-4 16:17:19

wofei1314 发表于 2015-10-30 09:33
不可以分开判断吗?
if(条件1)
{


我的意思是if 和else配套使用,不要漏掉……

wofei1314 发表于 2015-11-5 09:53:14

jiaswang 发表于 2015-11-4 16:17
我的意思是if 和else配套使用,不要漏掉……

if和else不可以分开么?我记得我以前都是分开的啊,不过我没试过
if(条件)
函数1;
else


else后面为空

jiaswang 发表于 2015-11-9 09:16:01

wofei1314 发表于 2015-11-5 09:53
if和else不可以分开么?我记得我以前都是分开的啊,不过我没试过
if(条件)
函数1;


应该也可以,个人习惯,标准用法是配对使用

peter001 发表于 2015-11-9 09:22:09

引脚短路了没有

wofei1314 发表于 2015-11-9 09:36:59

peter001 发表于 2015-11-9 09:22
引脚短路了没有

同样的硬件....
页: 1 2 3 [4]
查看完整版本: 奇葩问题,来围观,帮我找错....