目录
一、独立按键使用
1.防抖设计

最简单的防抖设计就是延迟,不过会产生一些问题,不建议这么做,优化办法在后面文章里会加入,此次实验还是利用延迟消抖。
二、相关HAL库的配置
时钟配置方面不再重复,同上篇文章,后期有更新再加入。
补充一下关于调试的配置,根据自己的配置来选择。建议选择双线模式,节省引脚。

1.模式选择

由图可知,应该配置为输入上拉模式,IO口检测是否为低电平来判断按键是否按下。
2.HAL库的配置

三、代码编写
注意:一定要在用户编码区编写,否则再次生成代码时会被覆盖。
if(HAL_GPIO_ReadPin(KEY0_GPIO_Port, KEY0_Pin)==0)
{
HAL_Delay(20);
if(HAL_GPIO_ReadPin(KEY0_GPIO_Port, KEY0_Pin)==0)
{
while(HAL_GPIO_ReadPin(KEY0_GPIO_Port, KEY0_Pin) == 0);
HAL_GPIO_TogglePin(LED0_GPIO_Port,LED0_Pin);
}
}

不用延迟的方法,欢迎交流和指正:
static unsigned char log=0;
switch(log)
{
case 0:
{
if(HAL_GPIO_ReadPin(KEY0_GPIO_Port, KEY0_Pin)==0)log=1;
}break;
case 1:
{
if(HAL_GPIO_ReadPin(KEY0_GPIO_Port, KEY0_Pin)==0)
{
log=2;HAL_GPIO_TogglePin(LED0_GPIO_Port,LED0_Pin);
}
else log=0;
}break;
case 2:
{
if(HAL_GPIO_ReadPin(KEY0_GPIO_Port, KEY0_Pin)==1)log=0;
}break;
}
本文介绍了独立按键的使用,重点是防抖设计的改进方法,以及如何配置HAL库,包括模式选择和GPIO操作,提供了代码示例以帮助开发者理解和实践。
1049

被折叠的 条评论
为什么被折叠?



