欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

STM32按键实验学习笔记

程序员文章站 2022-07-12 10:23:44
...

一、按键扫描的基本原理

 

按键信号是如何识别的?

一般来说,按键的两个引脚的一端通过电阻上拉到高电平,另一端则接地。

没有按键按下的时候,输入引脚为高电平,当有按键按下,输入引脚则为低电平。通过反复读取按键输入引脚的信号,然后识别高低电平来判断是否有按键触发。

为什么去抖动?

按键的输入引脚有低电平产生不代表一定是有按键按下,也许是干扰信号 , 因此,需要通过去抖动处理,将这些干扰信号过滤,从而获得真实的按键触发信号。

如何去抖动?

首次检测到按键输入引脚有低电平后,稍作延时,再次读取该引脚,如还是低电平,则确认为按键触发信号;否则,判断为干扰信号,不予处理。

二、GPIO输入电平读取HAL库函数

GPIO_PinState  HAL_GPIO_ReadPin( GPIO_TypeDef* GPIOx,  uint16_t GPIO_Pin);

参数1:GPIOx,端口号,如:GPIOB,GPIOF。
参数2:GPIO_Pin,引脚号,如:GPIO_PIN_9,GPIO_PIN_12。
返回值:GPIO_PinState,引脚的电平状态。
应用举例:判断PC13引脚的输入信号,若为高电平,则将PB9引脚控制的LED灯的开关状态切换。    
if(HAL_GPIO_ReadPin(GPIOC, GPIO_PIN_13) == GPIO_PIN_SET)  
{              
    HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_9);      
}

 

参考网址:https://www.xmf393.com/2020/02/16/2020021603/

 

 

 

 

 

 

 

 

相关标签: STM32 单片机