为了一种GPIO口的输入功能,特为它配置了一个触摸式按键以控制LED的亮灭。
其中,将GPIO2_4与开发板上的LED9相连;将GPIO2_3与触摸式按键的输出引脚相连。
为对按键连接引脚的配置,相应的函数为:
static void KEY_Init(void)
{
IOC_Init_TypeDef init;
IOC_ConfigStructInit(&init);
init.mode = IOC_AF_MODE_3;
init.dir = GPIO_DIR_IN_OUT;
init.pull = IOC_PULL_UP;
IOC_Config(IOC_PIN_GPIO_PLL_REF, &init);
GPIO_PortOutputDisable(GPIO2, GPIO_PIN_03);
}
以按键控制LED的主程序为:
int main(void)
{
EVB_LEDInit();
KEY_Init();
while (1)
{
if(GPIO_ReadPin(GPIO2, GPIO_PIN_03)==RESET)
{
GPIO_WritePin(GPIO_LED_PORT, GPIO_LED_PIN, RESET);
}
else
{
GPIO_WritePin(GPIO_LED_PORT, GPIO_LED_PIN, SET);
}
__Delay(0x5FF);
}
}
经程序的编译与运行,其控制效果如图2和图3所示,说明程序设计符合预期目标。
图1 点亮状态
图2 熄灭状态
|