我们知道 GPIO 的输入输出功能分别可以输出或检测一个引脚的高低电平,即当一个 IO 口作为输出引脚时,将一个引脚的状态设为 1 为高电平设为 0 为低电平,当 IO 作为输入引脚时,此引脚的高低电平状态对应 1 和 0. 1.2 按键对应引脚 那么我们使用学习板上的 KEY0 按键(PA0)进行按键检测的实验。让我们看到原理...
按键检测原理比较简单,按键按下和不按下,其连接引脚的电平是不一样的,按键检测正是通过检测按键引脚的电平变化来实现的。比如按键未按下时引脚电平为高电平,按键按下后为低电平。我们在检测按键时只需要检测按键引脚是否变为低电平来确定按键是否按下。 二、硬件连接 按键的硬件连接决定了我们在配置按键IO时IO的状态。
st官网:STM32 固件 - 意法半导体STMicroelectronics 单片机型号:STM32F103VET6 配置步骤大致为:对照原理图确认引脚和硬件连接关系--->初始化对应引脚--->添加扫描函数--->在主函数中调用,实现功能 step1:硬件原理图(按键检测电路,有KEY1和KEY2两个按键,按键按下时对应引脚为高电平;按键松开时对应引脚为低电平) ...
2.GPIO配置:如何通过STM32的HAL库或LL库来配置GPIO引脚,使其适用于按键检测。 3.按键状态检测:如何读取GPIO引脚的状态以检测按键的按下和释放。 4.去抖动处理:解决机械按键可能引发的抖动问题,以确保准确的按键检测。 5.检测方法:使用轮询法或中断法来实现按键检测,根据项目的需求选择合适的方法。 通过深入了解这些...
这里KEY4按键长按LED闪烁是在按键检测函数里直接执行的,而短按是在键值处理函数里执行的。之所以这么做,是因为按键长按不松手,键值一直不变,按键处理函数只会被执行一次,请看前文的ScanKey函数。KEY1长按,短按都是在键值处理函数里执行的。 在按键处理函数中,首先分离出长按标志位,然后根据键值去匹配是哪个按键...
本文学习内容来自普中开发板官方学习文档。STM32实现按键检测,可以使用扫描或中断的方式。本文采用扫描的方式来实现。本文使用的按键电路原理图如下:按键KEY_UP接在GPIOA端口上,其他按键连接在GPIOE上;LED接在GPIOC上。其中KEY_UP通过电阻连接到3.3v,连接到PA0口,其具有一个唤醒的功能,连接高电平有效。要判断...
GPIO_TypeDef* GPIOx; /* 定义按键使用的端口,如GPIOA,基于STM32官方库 */ uint16_t GPIO_Pin; /* 按键对应的 pin 引脚 */ enum my_button_event event; /* 按键的触发的事件 */ my_button_callback cb; /* 按键触发事件回调函数 */
按键检测是嵌入式系统中的基础功能,它允许用户通过物理按键与设备进行交互。STM32微控制器提供了丰富的GPIO(通用输入输出)引脚,可以方便地连接按键并进行检测。短按和长按是两种常见的按键操作模式,短按通常用于触发一个事件或命令,而长按则可能用于激活更复杂的功能或模式。
按键检测使用到 GPIO 外设的基本输入功能,本章中不再赘述 GPIO 外设的概念,如您忘记了,可重读前面“GPIO 框图剖析”小节, STM32 标准库中 GPIO 初始化结构体GPIO_TypeDef 的定义与“定义引脚模式的枚举类型”小节中讲解的相同。 10.1 硬件设计: 按键机械触点断开、闭合时,由于触点的弹性作用,按键开关不会马上稳定...
最后点击下载即可: 实验现象如下: 上电复位时LED处于熄灭状态; 按下KEY1,LED点亮; 按下KEY2,LED熄灭; 至此,我们已经学会了如何使用STM32CubeMX快速生成MDK的工程,以及如何使用 STM32CubeMX初始化GPIO进行按键检测,下一节讲述如何配置NVIC使用外部中断检测按键。