如何判断两个按键同时按下

2019-03-23 17:01发布

if((GPIO_ReadInputDataBit(GPIOD,GPIO_Pin_5)==0)&&(GPIO_ReadInputDataBit(GPIOD,GPIO_Pin_6)==0))      //ÉèÖüü
{
  for(i=0;i<10000;i++);
  if((GPIO_ReadInputDataBit(GPIOD,GPIO_Pin_5)==0)&&(GPIO_ReadInputDataBit(GPIOD,GPIO_Pin_6)==0))
  {
   while((GPIO_ReadInputDataBit(GPIOD,GPIO_Pin_5)==0)&&(GPIO_ReadInputDataBit(GPIOD,GPIO_Pin_6)==0));
   LcdCommand(0x0f);              //&Iuml;&Ocirc;&Ecirc;&frac34;&raquo; &Atilde;&aelig;&Eacute;è&Ouml;&Atilde;
   DisplayDS13021();
   ScreenNumber=0;
   LcdCommand(0x85);
   SetAddress=0X85;
   
   
   
   
   
   SetFlag=1;
   
  }
}
我是这样写的,不过不太灵敏。我不太会用什么状态机,高手支招,谢谢!
此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
12条回答
高进
1楼-- · 2019-03-24 15:19
 精彩回答 2  元偷偷看……
chenbingjy
2楼-- · 2019-03-24 15:33
高进 发表于 2017-12-15 18:02
嗯,看错了。你这个for是延时哈。
这么写没什么问题啊。就是两个键同时按下,过一会还是同时按下,就认 ...

反正很费劲,要摁好一会。不过现在好了,不用同时按两个按键了。
sanhuasr
3楼-- · 2019-03-24 16:57
chenbingjy 发表于 2017-12-15 18:13
反正很费劲,要摁好一会。不过现在好了,不用同时按两个按键了。

不用同时按?怎么按?
chenbingjy
4楼-- · 2019-03-24 19:36
 精彩回答 2  元偷偷看……
damiaa
5楼-- · 2019-03-24 23:36
定时中断里定时读取GPIO状态,记忆(用内存数组记下,不断循环记,记最近6次)。

主程序中查看记忆内存,发现连续6次按键A,B 状态都是0 那就是同时按下了。如果发现有不是0的那就不是了。
MCUQQ37806425
6楼-- · 2019-03-25 05:19
看四楼

一周热门 更多>