无论任何开发板,学习还是要从GPIO口开始好,既然在开发板上已配置按键和LED灯。那就以它们为目标实现按键对LED灯的控制。
开发板上按键和LED灯的电路如图1所示,指令要实现的是以KEY1来控制LED1。
![image.png](//www.hzfubeitong.com/file/web2/M00/82/C4/pYYBAGOUUWKAZsK5AACYbSW2rRc322.png)
图1 按键与LED电路
对KEY1和LED1的引脚配置函数分别如下:
voidkey_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); }voidled_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);}
实现控制的主程序为:
intmain(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);elseFL_GPIO_SetOutputPin(GPIOC, FL_GPIO_PIN_1);FL_DelayMs(200); } }
将程序的编译与下载,其运行结果如图2和图3所示,说明程序是有效的,这便为后续的体验和程序设计打下的良好的基础。
![image.png](//www.hzfubeitong.com/file/web2/M00/82/3B/poYBAGOUU3uAOeqFAASBCMaYMj4738.png)
图2 释放状态
![image.png](//www.hzfubeitong.com/file/web2/M00/82/C4/pYYBAGOUU42AZMFPAAUpqudApIA663.png)
图3 点按状态
|