按键功能
说明:在哔哩哔哩跟随UP主铁头山羊学习,所有代码均来自铁头山羊B站课堂或者根据铁头山羊代码修改。
功能说明
1、点亮一颗LED,使用GPIOA PIN0/1/2,500ms亮500ms灭,一直循环。
2、gpio输出高电平点亮,gpio输出低电平熄灭。
3、实现按键功能,每按下按键,抬起时候换一颗LED闪烁。
4、gpio输入模式查询按键是否按下,使用GPIOA PIN3,外部上拉高电平,按下时候接地即低电平。
API编程接口
1、void HAL_Init() //初始化HAL库
2、void HAL_Delay(uint32_t Delay) //HAL库延迟函数,最小1ms
3、__HAL_RCC_GPIOA_CLK_ENABLE() //GPIOA时钟使能
4、void HAL_GPIO_Init(GPIO_TypeDef* GPIOx,GPIO_InitTypeDef* GPIO_Init)
//GPIO初始化,函数参数获取方法:鼠标放在函数名上,按F3
5、void HAL_GPIO_WritePin(GPIO_TypeDef* GPIOx,uint16_t
GPIO_PIN,GPIO_PinState PinState) //GPIO输出高低电平
6、void HAL_GPIO_ReadPin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin) //读取GPIO 状态,返回GPIO_PIN_SET或GPIO_PIN_RESET
7、void HAL_GPIO_TogglePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin) //将GPIO输出状态反转
8、HAL_GetTick(void) //获取当前系统定时时间
LED初始化函数
void LEDInit()
{
GPIO_InitTypeDef gpioinit;
gpioinit.Pin = GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_2;
gpioinit.Mode = GPIO_MODE_OUTPUT_PP ;
gpioinit.Speed = GPIO_SPEED_FREQ_LOW;
__HAL_RCC_GPIOA_CLK_ENABLE();
HAL_GPIO_Init(GPIOA,&gpioinit);
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_2,GPIO_PIN_RESET);
}
按键初始化函数
void ButtonInit()
{
GPIO_InitTypeDef gpioinit;
gpioinit.Pin = GPIO_PIN_3;
gpioinit.Mode = GPIO_MODE_INPUT;
gpioinit.Pull = GPIO_NOPULL;
__HAL_RCC_GPIOA_CLK_ENABLE();
HAL_GPIO_Init(GPIOA,&gpioinit);
}
按键检测函数