本帖最后由 jinglixixi 于 2020-7-3 12:05 编辑
按键是进行人机交互的常用器件,而超薄型的软按键更以其结构简洁、节省空间所为人接受,它与SC95F8616核心板配合即可实现简单的人机交互。
软按键与核心板
软按键共有5个引脚,除4个按键状态输出引脚外,还有一个公共信号输入引脚。为便于信号状态的识别,通常将公共输入引脚接地,则检测到某个输出引脚为地电平时,即为该按键按下。 为便于连接,软按键与核心板的连接关系如下: K1--P07 K2--P06 K3--P05 K4--P04
此外,为了便于进行检测验证,是以串口Uart0来输出识别信息,Uart0的引脚功能分配为: TX--p2.1 RX--p2.0
实现图示效果的按键识别处理主程序为: - void main(void)
- {
- BitStatus f;
- mdelay(500);
- GPIO_Init(GPIO0, GPIO_PIN_4, GPIO_MODE_IN_PU);
- GPIO_Init(GPIO0, GPIO_PIN_5, GPIO_MODE_IN_PU);
- GPIO_Init(GPIO0, GPIO_PIN_6, GPIO_MODE_IN_PU);
- GPIO_Init(GPIO0, GPIO_PIN_7, GPIO_MODE_IN_PU);
- Uart0Init();
- enableInterrupts();
- printf("KEY TEST \r\n");
- while(1)
- {
- f=GPIO_ReadPin(GPIO0, GPIO_PIN_4);
- if(f==0)
- {
- printf("K3 TEST: \r\n");
- while(f==0) f=GPIO_ReadPin(GPIO0, GPIO_PIN_4);
- }
-
- f=GPIO_ReadPin(GPIO0, GPIO_PIN_5);
- if(f==0)
- { printf("K4 TEST: \r\n");
- while(f==0) f=GPIO_ReadPin(GPIO0, GPIO_PIN_5);
- }
-
- f=GPIO_ReadPin(GPIO0, GPIO_PIN_6);
- if(f==0)
- { printf("K1 TEST: \r\n");
- while(f==0) f=GPIO_ReadPin(GPIO0, GPIO_PIN_6);
- }
-
- f=GPIO_ReadPin(GPIO0, GPIO_PIN_7);
- if(f==0)
- { printf("K2 TEST: \r\n");
- while(f==0) f=GPIO_ReadPin(GPIO0, GPIO_PIN_7);
- }
- mdelay(1000);
- }
- }
复制代码
按键测试效果
|