标题:
单片机简易按键处理程序
[打印本页]
作者:
munuc_w
时间:
2021-1-20 08:50
标题:
单片机简易按键处理程序
在论坛里看到很多初学者对按键处理较模糊,这里给大家提供一个简单实用的按键处理函数,函数是在正点原子的例程中修改而来的,这个函数使用在STM32的单片机上,大家在使用时根据硬件电路修改端口即可。
//--------------- get key ---------------------------
//返回键值()
//入口参数:0,不支持连续读键盘;1,支持连续读键盘
//出口参数:0,无按键,其它:键值
//---------------------------------------------------
uint8_t get_key(uint8_t mode)
{
static uint8_t key_up = 1;//读键条件,1连续读;0不连续读
if(mode == 1)
key_up = 1;
if(key_up&&(((GPIOA->IDR>>3) & 0x0F) != 0x0F))//判断是否有键按下
{
delay_nms(30); //有键按下,延时去抖
key_up = 0;
return ((~(GPIOA->IDR>>3)) & 0x0F); //返回键值
}
else if(((GPIOA->IDR>>3) & 0x0F) == 0x0F) //按键已释放
key_up = 1;
return 0;
}
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1