9-6. 按键流程图

1.介绍

按键介绍:

在我们的项目中按键是用来检测某颗按键是否按下,是“短按/长按/连击”在不同模式下,不同的按键有不同的功能;如切换模式,同一模式下切换不同页面、控制指定外设等。

视频讲解:

【按键流程讲解(STM32)】 https://www.bilibili.com/video/BV1k7wCzmEZ9/?share_source=copy_web&vd_source=097fdeaf6b6ecfed8a9ff7119c32faf2

完整的流程图如下:

1.1、按键初始化

使用按键时需先在int main中进行初始化,如图:

接下来便是实际的初始化部分:

1:初始化函数

2:打开开启对应的GPIO时钟

3:把引脚模式配置为上拉输入

对应流程图也是一致的

1.2、开启按键扫描

按键扫描是写到了定时器2的中断服务函数中,每过1ms就扫描一次以免出现按键按下,但是单片机没有采集到信号的情况。

对应的流程图如下:

1.3、键值判定

按键1与按键2的采集逻辑有长按与短按

按键3与按键4的采集逻辑有短按与连击

长按、短按判定逻辑是:当按键按下后,计数器开始计数,当计数值大于消抖值(图中1),就判定为短按(图中2);当计数值大于长按阈值(图中3),就判定为长按(图中4)

对应的代码如下:

连击、短按判定逻辑是:当按键按下后,计数器开始计数,当计数值大于消抖值(图中1),就判定为短按(图中2);当计数值大于连击阈值(图中3),就判定为连击(图中4)

对应的代码如下:

2.补充

2、此流程图为了方便大家理解,为简化版;实际程序运行中这里并不是同时执行,是按照顺序扫描;如:是否为按键1按下,不是的话再继续向下扫描,是否为按键2按下,也不是的话,是否为按键三按下,直到是按键X按下,开始执行按键X的判定逻辑。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值