你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

奇葩问题,来围观,帮我找错....

[复制链接]
wofei1314 提问时间:2015-10-27 18:10 /
#define ExButton1()     GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_14)
#define ExButton2()     GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_12)
程序这样写就会出错,PE12的值读上来一直是1!
        if(ExButton1()==0)   //启动紧急开门1,并记录日志
        {
            q_doorcmd = DOOR_STATE_OPEN;
            trig_openstyle = R_TRIG_EXBTN1OPEN;
            RecordDoorState(trig_openstyle,DOOR_STATE_OPEN);//表示应急开门1
        }
        if(ExButton2()==0)   //启动应急开门2,并记录日志
        {
            q_doorcmd = DOOR_STATE_OPEN;
            trig_openstyle = R_TRIG_EXBTN2OPEN;
            RecordDoorState(trig_openstyle,DOOR_STATE_OPEN);//52='4',表示应急开门2
        }
程序这样写,读PE12的值就是0
        if((ExButton1()==0) || (ExButton2()==0))
        {
            Door1Open(1);

        }

郁闷了.....不知道怎么回事,有人遇到类似的问题吗?我上面是通用的硬件,其它程序都没有占用IO,正确的是PE12读上来为0 !

收藏 1 评论39 发布时间:2015-10-27 18:10

举报

39个回答
moyanming2013 回答时间:2015-10-27 18:51:46
看你的编译器对于||是从左往右还是从右往左,然后如果一旦第一个判断正确,就不做第二个判断了。
  1. if((ExButton1()==0) || (ExButton2()==0))
复制代码
你好我好大家好! 回答时间:2015-10-27 18:57:51
这个真不知道
wofei1314 回答时间:2015-10-27 19:56:22
moyanming2013 发表于 2015-10-27 18:51
看你的编译器对于||是从左往右还是从右往左,然后如果一旦第一个判断正确,就不做第二个判断了。
...

第二个是正确相应的,主要是第一个出错
chifen 回答时间:2015-10-27 21:13:14
你要把PE12设置成输入 带上位的
yanhaijian 回答时间:2015-10-28 09:27:29
moyanming2013 发表于 2015-10-27 18:51
看你的编译器对于||是从左往右还是从右往左,然后如果一旦第一个判断正确,就不做第二个判断了。
...

正解啊。
wofei1314 回答时间:2015-10-28 18:20:14

看来我表述的不好,if(||)这种是没问题的,有问题的是if()。。。if()。。。
wofei1314 回答时间:2015-10-28 18:21:29
chifen 发表于 2015-10-27 21:13
你要把PE12设置成输入 带上位的

上拉下拉都试过了,就是读回来的是1.。。。
chifen 回答时间:2015-10-28 19:03:18
状态输入 ,上位模式,  IO时钟一定要开启,正常是为1的,对短路 会变成0
wofei1314 回答时间:2015-10-28 21:48:55
chifen 发表于 2015-10-28 19:03
状态输入 ,上位模式,  IO时钟一定要开启,正常是为1的,对短路 会变成0

谢谢,同样的程序配置,自然都使能 了时钟,配置了输入模式。。。。。

差别只是用两个if判断还是if(条件1 || 条件2),同样的板子。。。怀疑是keil的问题或者单片机的bug。。。
1234下一页

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版