stm32 CubeMX配置按键开关灯

简介: stm32 CubeMX配置按键开关灯

前言

本篇文章主要带大家学习如何使用按键进行开关灯的操作。

一、CubeMX配置

cubeMX配置大家可以参考下面文章,这里我只讲需要添加的地方。

传送门

image.png

image.png

image.png

按键GPIO口设置为输入模式,由上面原理图可以知道按键在没有按下的时候电平状态不确定,所以我们应该给按键加一个上拉电阻,在按键没有按下时GPIO电平状态就为高电平,按键按下时GPIO电平状态就为低电平。

二、代码解析

这里我们需要对按键进行消抖,因为当按键按下时会发生抖动,当按键发生抖动的时候去读取按键值这个时候读出的按键值是不准确的。

在这里我们可以延时10ms等按键电平稳定的时候再去读取按键的值,这样就可以得到比较稳定的按键值了。

image.png

void KEY_Scan(void)
{
  if(HAL_GPIO_ReadPin(GPIOE,GPIO_PIN_3))//读取按键电平状态
  {
    HAL_Delay(10);//延时消抖
    if(HAL_GPIO_ReadPin(GPIOE,GPIO_PIN_3))
    {
      HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_5);//按下一次电平反转一次
    }
  }
}
while(1)
{
  KEY_Scan();
}

这里还有一点可以进行优化的地方就是使用到了延时函数,当延时函数在程序中大量使用的时候将会造成程序的卡顿,影响程序的运行效率,这里我们可以使用定时器进行消抖处理,或者将按键的引脚配置为外部中断引脚。


总结

大家觉得按键是不是很简单,看完后可以自己练习一下。按键的操作其实和LED灯的操作都是比较简单的,只不过一个需要设置为输出一个设置为输入。


相关文章
|
11月前
|
芯片
最详细STM32,cubeMX 按键点亮 led
最详细STM32,cubeMX 按键点亮 led
167 0
|
11月前
|
传感器 芯片
最详细STM32,cubeMX 点亮 led
最详细STM32,cubeMX 点亮 led
122 0
|
4月前
|
C语言
【STM32 CubeMX】移植u8g2(一次成功)
【STM32 CubeMX】移植u8g2(一次成功)
444 0
|
4月前
|
传感器 开发者
【STM32基础 CubeMX】外部中断
【STM32基础 CubeMX】外部中断
204 44
|
4月前
|
存储 传感器
【STM32基础 CubeMX】uart串口通信
【STM32基础 CubeMX】uart串口通信
286 0
|
4月前
|
传感器 芯片
【STM32基础 CubeMX】从0带你点灯
【STM32基础 CubeMX】从0带你点灯
132 0
【STM32基础 CubeMX】从0带你点灯
|
4月前
|
传感器 存储 编解码
【STM32基础 CubeMX】ADC的基础使用
【STM32基础 CubeMX】ADC的基础使用
152 0
|
4月前
|
存储
【STM32基础 CubeMX】PWM输出
【STM32基础 CubeMX】PWM输出
449 0
|
4月前
|
传感器 物联网 开发者
【STM32基础 CubeMX】定时器的使用
【STM32基础 CubeMX】定时器的使用
201 0
|
4月前
|
数据安全/隐私保护 芯片
【STM32基础 CubeMX】按键的检测
【STM32基础 CubeMX】按键的检测
128 0