无论任何开发板,学习还是要从GPIO口开始好,既然在开发板上已配置按键和LED灯。那就以它们为目标实现按键对LED灯的控制。
开发板上按键和LED灯的电路如图1所示,指令要实现的是以KEY1来控制LED1。
图1 按键与LED电路
对KEY1和LED1的引脚配置函数分别如下:
void key_int(void)
{
FL_GPIO_InitTypeDef GPIO_InitStruct = {0};
FL_GPIO_ResetOutputPin(GPIOD, FL_GPIO_PIN_9); GPIO_InitStruct.pin = FL_GPIO_PIN_9;
GPIO_InitStruct.mode = FL_GPIO_MODE_INPUT; GPIO_InitStruct.pull = FL_ENABLE;
FL_GPIO_Init(GPIOD, &GPIO_InitStruct);
}
void led_int(void)
{
FL_GPIO_InitTypeDef GPIO_InitStruct = {0}; FL_GPIO_ResetOutputPin(GPIOC,FL_GPIO_PIN_1); GPIO_InitStruct.pin = FL_GPIO_PIN_1;
GPIO_InitStruct.mode = FL_GPIO_MODE_OUTPUT; GPIO_InitStruct.outputType =FL_GPIO_OUTPUT_PUSHPULL; GPIO_InitStruct.pull = FL_DISABLE;
FL_GPIO_Init(GPIOC,&GPIO_InitStruct);}
实现控制的主程序为:
int main(void)
{
MF_Clock_Init();
MF_SystemClock_Config();
FL_Init();
MF_Config_Init();
UserInit();
key_int();
while(1)
{
if(FL_GPIO_GetInputPin(GPIOD,FL_GPIO_PIN_9)==0)
FL_GPIO_ResetOutputPin(GPIOC, FL_GPIO_PIN_1);
else
FL_GPIO_SetOutputPin(GPIOC, FL_GPIO_PIN_1);
FL_DelayMs(200);
}
}
将程序的编译与下载,其运行结果如图2和图3所示,说明程序是有效的,这便为后续的体验和程序设计打下的良好的基础。
图2 释放状态
图3 点按状态
|