例程: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;// 无按键按下
}
请大家多多帮忙啊,新手入门,谢谢~~~~~
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
回复【楼主位】Zigbee2012:
---------------------------------
看原理图!
KEY_UP按键按下是高电平,你都上拉的话,按下和松开都是高电平,能识别才怪呢.
---------------------------------
想原子哥看起,谢谢
一周热门 更多>