本章将介绍如何使用IO口作为输入用,在本章中将利用1个按键,来控制板载的LED的亮灭。通过本章的学习,将了解到IO口作为输入口的使用方法。本章分为如下几个小节:
1、IO口简介
2、硬件设计
3、软件设计
1、IO口简介
IO口做输入使用的时候,是通过调用函数 SW2_Read() 来读取IO口的状态的。
这章,我们将通过CY8CKIT-046 PSoC 4 L-Series Pioneer Kit开发板上的按钮(SW2),来控制板上的LED,按一次亮,再按一次灭。
2、硬件设计
本实验用到的硬件资源有:
(1)指示灯LED
(2)按键SW2
SW2是高电平有效的,并且外部没有上下拉电阻,所以,需要在内部设置上下拉。
3、软件设计
/********************************
* 按键处理函数
* mode: 0(不支持连续按) 1(支持连续按)
* 返回值:1(按键按下) 0(没有任何按键按下)
********************************/
uint8_t Key_Scan(uint8_t mode)
{
static uint8_t key_up = 1;
if(mode)
{
key_up = 1;
}
if((SW2_Read() == 0) && (key_up == 1))
{
key_up = 0;
if(SW2_Read() == 0)
{
return 1;
}
}else
{
key_up = 1;
}
return 0;
}
/* 将该函数放入主函数 while 循环中 */
void KeyFunction(void)
{
uint8_t key;
key = Key_Scan(0);
if(key)
{
Led_Toggle(LED_RED);
}else
{
CyDelay(10);
}
}