实验现象:按下B1按键,LED1亮!按下B2按键,LED1灭!
按下B3按键,LED2亮!按下B4按键,LED2灭!
1.创建key.c和key.h文件,将其分别放入Src跟Inc文件中,与第一篇文章中代码封装的步骤一致。
2.编写key.c中代码
#include "key.h"
#include "main.h"
#include "led.h"
void key()
{
//按下B1键 led1灯亮
if(HAL\_GPIO\_ReadPin(GPIOB,GPIO_PIN_0)==RESET)//B1按下为低电平
{
HAL\_Delay(5);//防抖动
if(HAL\_GPIO\_ReadPin(GPIOB,GPIO_PIN_0)==RESET)//延迟消抖
{
//写功能
led(1,1);
}
// 等待按键松开,按键松开之前程序一直卡在while循环里,按键松开之后才能处理其他的程序。
while(HAL\_GPIO\_ReadPin(GPIOB,GPIO_PIN_0)==RESET);
}
//按下B2键,led1灯灭
if(HAL\_GPIO\_ReadPin(GPIOB,GPIO_PIN_1)==RESET)//B2按下为低电平
{
HAL\_Delay(5);
if(HAL\_GPIO\_ReadPin(GPIOB,GPIO_PIN_1)==RESET)
{
//写功能
led(1,0);
}
while(HAL\_GPIO\_ReadPin(GPIOB,GPIO_PIN_1)==RESET);
}
//按下B3键,led2灯亮
if(HAL\_GPIO\_ReadPin(GPIOB,GPIO_PIN_2)==RESET)//B3按