原子哥!!按键问题,KEY0、KEY1相应IO上拉而WK_UP相应IO下拉

2019-08-16 19:53发布

例程:KEY0、KEY1上拉而WK_UP下拉我修改了哈:三个按键全为上拉,但最终只有 KEY0、KEY1能用 附上修改后的程序,背景加深为修改了滴!! void KEY_Init(void)
{
RCC->APB2ENR|=1<<2; //使能PORTA时钟
GPIOA->CRL&=0XFFFFFFF0;//PA0设置成输入
GPIOA->CRL|=0X00000008;
GPIOA->CRH&=0X0F0FFFFF;//PA13,15设置成输入
GPIOA->CRH|=0X80800000;
GPIOA->ODR|=1<<13; //PA13上拉,PA0默认下拉
GPIOA->ODR|=1<<15; //PA15上拉
GPIOA->ODR|=1; //PA0上拉
}

u8 KEY_Scan(void)
{
static u8 key_up=1;//按键按松开标志
JTAG_Set(JTAG_SWD_DISABLE);
if(key_up&&(KEY0==0||KEY1==0||KEY2==0))//原来KEY2==1
{
delay_ms(10);//去抖动
key_up=0;
if(KEY0==0)
{
JTAG_Set(SWD_ENABLE);
return 1;
}
else if(KEY1==0)
{
JTAG_Set(SWD_ENABLE);
return 2;
}
else if(KEY2==0)//原来KEY2==1
{
JTAG_Set(SWD_ENABLE);
return 3;
}
}else if(KEY0==1&&KEY1==1&&KEY2==1)key_up=1;
JTAG_Set(SWD_ENABLE);
return 0;// 无按键按下
}   请大家多多帮忙啊,新手入门,谢谢~~~~~  



















友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。