码迷,mamicode.com
首页 > 其他好文 > 详细

按键检测程序应"等待按键释放"

时间:2016-05-11 23:40:13      阅读:259      评论:0      收藏:0      [点我收藏+]

标签:

按键S4是下拉,S1、S2、S3为上拉。一定要等待按键释放,否则按一次S1可能会运行key_scan()函数好几次。

 1 /*******************************************************************************
 2 * Function Name  : key_scan
 3 * Description    : 按键扫描.优先级S4>S0>S1>S2。一定要等待按键释放
 4 * Input          : None
 5 * Output         : None
 6 * Return         : 按键值
 7 *******************************************************************************/
 8 u8 key_scan()
 9 {
10     if( (S4==1) || (S1==0) || (S2==0) || (S3==0) )
11     {
12         delay_ms(10);
13         if(S1==0)  
14         {    
15             while(S1==0); 
16             return S1_Press;
17         }
18         if(S2==0) 
19         {
20             while(S2==0);
21             return S2_Press;
22         }
23         if(S3==0) 
24         {    
25             while(S3==0);
26             return S3_Press;
27         }
28         if(S4==1)
29         {            
30             while(S4==1);
31             return S4_Press;
32         }
33     }
34     return 0;
35 }

头文件定义

1 #define S4 GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_0)//S4 PA.0
2 #define S1 GPIO_ReadInputDataBit(GPIOE, GPIO_Pin_4)//S1 PE.4
3 #define S2 GPIO_ReadInputDataBit(GPIOE, GPIO_Pin_3)//S2 PE.3
4 #define S3 GPIO_ReadInputDataBit(GPIOE, GPIO_Pin_2)//S3 PE.2
5 
6 #define S1_Press 1
7 #define S2_Press 2
8 #define S3_Press 3
9 #define S4_Press 4

 

按键检测程序应"等待按键释放"

标签:

原文地址:http://www.cnblogs.com/alfred-yang/p/5483954.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!