STM32Cube-按键检测
提示:以下是本篇文章正文内容,下面案例可供参考
一、按键检测
1.硬件设计
按键的一端连接GND,也就是低电平;另一端连接嵌入式的IO口,每当按键被按下的时候,IO口将会被按键的GND拉低,这时读取IO口的电平是0。这样的连接有个缺点:未按下按键时,IO口浮空,是一个不确定的电平,可以受到静电干扰而误动作。二种办法可以解决:一是将IO口设置为高电平,这样就固定为高电平了,二是在软件中设置这个IO口为上拉输入模式。
2.软件消抖
由于机械点的弹性作用,一个按键开关在闭合时不会马上稳定地接通,在断开时也不会一下子断开,而是在闭合及断开的瞬间均便随一连串的抖动,抖动时间的长短有按键的机械特性决定,一般为5~10ms。按键稳定闭合时间的长短则由操作人员的按键动作决定,一般为零点几秒至数秒。按键抖动会引起按键被误读多次。为了确保CPU对按键的一次闭合仅做一次处理,必须去除按键抖动。
二、软件编程
1.配置STM32Cube
2.使用按键控制点亮LED
代码如下(引脚配置):
void MX_GPIO_Init(void)
{
GPIO_InitTypeDef GPIO_InitStruct = {
0};
/* GPIO Ports Clock Enable */
__HAL_RCC_GPIOA_CLK_ENABLE();
__HAL_RCC_GP