下面3个接上拉电阻
WK_UP接上拉电阻
因为用到了PA,PC,PH所以要使能3个模块
STATIC静态变量只会初始化一次
每次调用flag++,不会再初始化为0;起记忆作用。
最关键的是头
件不要忘了加!!!用新的KEY和LED时必须加对应的头文件及初始化
逻辑部分十分简单,由两个函数KEY与LED组成,
u8 KEY_Scan(u8 mode)
{
static u8 key_up=1;
if(mode==1)key_up=1;
if(key_up&&(KEY0==0||KEY1==0||KEY2==0||WK_UP==1))
{
delay_ms(10);
key_up=0;
if(KEY0==0) return KEY0_PRES;
else if(KEY1==0) return KEY1_PRES;
else if(KEY2==0) return KEY2_PRES;
else if(WK_UP==1) return WKUP_PRES;
}else if(KEY0==1&&KEY1==1&&KEY2==1&&WK_UP==0)key_up=1;
return 0;
} 若MOD为0则不判断连续按下。
LED通过位操作控制