8679|12

3243

帖子

0

TA的资源

纯净的硅(高级)

楼主
 

如何判断两个按键同时按下 [复制链接]

 
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);              //ÏÔʾ» ÃæÉèÖÃ
   DisplayDS13021();
   ScreenNumber=0;
   LcdCommand(0x85);
   SetAddress=0X85;
   
   
   
   
   
   SetFlag=1;
   
  }
}
我是这样写的,不过不太灵敏。我不太会用什么状态机,高手支招,谢谢!
此帖出自stm32/stm8论坛

最新回复

看四楼  详情 回复 发表于 2017-12-21 15:50
点赞 关注
个人签名为江山踏坏了乌骓马,为社稷拉断了宝雕弓。
 

回复
举报

565

帖子

0

TA的资源

一粒金砂(高级)

沙发
 
FPGA可以
此帖出自stm32/stm8论坛

点评

我用的是STM32啊  详情 回复 发表于 2017-12-15 08:31
 
 

回复

3243

帖子

0

TA的资源

纯净的硅(高级)

板凳
 

我用的是STM32啊
此帖出自stm32/stm8论坛
 
个人签名为江山踏坏了乌骓马,为社稷拉断了宝雕弓。
 

回复

379

帖子

0

TA的资源

一粒金砂(高级)

4
 
判断任何一个按键触发之后,从新读取一遍所有按键的状态
此帖出自stm32/stm8论坛
 
 
 

回复

3471

帖子

13

TA的资源

五彩晶圆(高级)

5
 
如果是 按下需要很长时间。才能识别,就看看延时方面,或者其他语句是否带来了较大的延时。可以试试多次判断,短延时
此帖出自stm32/stm8论坛
 
 
 

回复

626

帖子

173

TA的资源

一粒金砂(高级)

6
 
你这个if里面套个for,for里面又套个if,感觉好怪。
此帖出自stm32/stm8论坛
加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身

点评

你看错啦,for里面没套if  详情 回复 发表于 2017-12-15 17:54
 
 
 

回复

3243

帖子

0

TA的资源

纯净的硅(高级)

7
 
高进 发表于 2017-12-15 17:48
你这个if里面套个for,for里面又套个if,感觉好怪。

你看错啦,for里面没套if
此帖出自stm32/stm8论坛

点评

嗯,看错了。你这个for是延时哈。 这么写没什么问题啊。就是两个键同时按下,过一会还是同时按下,就认为是都按下了。 有什么不灵敏的?你能说说看到的现象吗?  详情 回复 发表于 2017-12-15 18:02
 
个人签名为江山踏坏了乌骓马,为社稷拉断了宝雕弓。
 
 

回复

626

帖子

173

TA的资源

一粒金砂(高级)

8
 
chenbingjy 发表于 2017-12-15 17:54
你看错啦,for里面没套if

嗯,看错了。你这个for是延时哈。
这么写没什么问题啊。就是两个键同时按下,过一会还是同时按下,就认为是都按下了。
有什么不灵敏的?你能说说看到的现象吗?
此帖出自stm32/stm8论坛
加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身

点评

反正很费劲,要摁好一会。不过现在好了,不用同时按两个按键了。  详情 回复 发表于 2017-12-15 18:13
 
 
 

回复

3243

帖子

0

TA的资源

纯净的硅(高级)

9
 
高进 发表于 2017-12-15 18:02
嗯,看错了。你这个for是延时哈。
这么写没什么问题啊。就是两个键同时按下,过一会还是同时按下,就认 ...

反正很费劲,要摁好一会。不过现在好了,不用同时按两个按键了。
此帖出自stm32/stm8论坛

点评

不用同时按?怎么按?  详情 回复 发表于 2017-12-15 21:29
 
个人签名为江山踏坏了乌骓马,为社稷拉断了宝雕弓。
 
 

回复

565

帖子

0

TA的资源

一粒金砂(高级)

10
 
chenbingjy 发表于 2017-12-15 18:13
反正很费劲,要摁好一会。不过现在好了,不用同时按两个按键了。

不用同时按?怎么按?
此帖出自stm32/stm8论坛

点评

按一个就行了  详情 回复 发表于 2017-12-16 11:47
 
 
 

回复

3243

帖子

0

TA的资源

纯净的硅(高级)

11
 
sanhuasr 发表于 2017-12-15 21:29
不用同时按?怎么按?

按一个就行了
此帖出自stm32/stm8论坛
 
个人签名为江山踏坏了乌骓马,为社稷拉断了宝雕弓。
 
 

回复

6107

帖子

4

TA的资源

版主

12
 
定时中断里定时读取GPIO状态,记忆(用内存数组记下,不断循环记,记最近6次)。

主程序中查看记忆内存,发现连续6次按键A,B 状态都是0 那就是同时按下了。如果发现有不是0的那就不是了。
此帖出自stm32/stm8论坛
 
 
 

回复

20

帖子

0

TA的资源

一粒金砂(中级)

13
 
看四楼
此帖出自stm32/stm8论坛
 
个人签名MCU单片机QQ37806425
一级代理,免费开发。
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表