按键检测函数

Posted warrenzhang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了按键检测函数相关的知识,希望对你有一定的参考价值。

//按键处理函数
//返回按键值
//mode:0,不支持连续按;1,支持连续按;
//0,没有任何按键按下
//1,KEY0按下
//2,KEY1按下
//3,KEY3按下 WK_UP
//注意此函数有响应优先级,KEY0>KEY1>KEY_UP!!
u8 KEY_Scan(u8 mode)
{
static u8 key_up=1;//按键按松开标志
if(mode)key_up=1; //支持连按
if(key_up&&(KEY0==0||KEY1==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(WK_UP==1)return WKUP_PRES;
}
else if(KEY0==1&&KEY1==1&&WK_UP==0)key_up=1;
return 0;// 无按键按下
}

以上是关于按键检测函数的主要内容,如果未能解决你的问题,请参考以下文章

原创 STM32 学习13 库函数实现按键检测

GPIO 输入—按键检测

STM32CubeMX笔记--外部中断,使用按键KEY检测

一个学妹写的按键检测函数把我秀翻了

在主函数中利用累计主循环次数来实现独立按键的检测---有个小错误,明天调试一下

在 C++ 中只检测一个按键