程序出错PE12的值读上来一直是1

2019-07-14 16:45发布

#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 !
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
18条回答
yuxiangxyz
1楼-- · 2019-07-15 06:52
状态输入 ,上位模式,  IO时钟一定要开启,正常是为1的,对短路 会变成0
人中狼
2楼-- · 2019-07-15 08:25
是否可以理解为使用两个if的情况下,按键1可以开门,按键2则不可以开门,那么两个按键是否是完全独立的
zhhx1985
3楼-- · 2019-07-15 12:24
 精彩回答 2  元偷偷看……
yuxiangxyz
4楼-- · 2019-07-15 16:43
if((ExButton1()==0) || (ExButton2()==0)) 这是一个 或条件成立语句,你怎么知道 是 2的有问题,如果1读到的为0时也会进入的
zhhx1985
5楼-- · 2019-07-15 17:20
yuxiangxyz 发表于 2018-10-19 09:57
if((ExButton1()==0) || (ExButton2()==0)) 这是一个 或条件成立语句,你怎么知道 是 2的有问题,如果1读到的为0时也会进入的

以前是这样写的
if((ExButton1()==0) || (ExButton2()==0)) 这两个按钮用于触发开门操作,不管是那个按下,都可以控制开门,没有任何问题

但是我现在
ifi((ExButton1()==0)
{
    开门
    记录按钮1触发开门!
}

ifi((ExButton2()==0)
{
    开门
    记录按钮2触发开门!
}
这样就不行了,按钮2读到的电平时钟为高电平!!!
王萍
6楼-- · 2019-07-15 17:35
这个程序不好懂

一周热门 更多>