蓝桥杯嵌入式学习记录——按键长按

首先在.h文件里用结构体创建5个变量,用来判断按键是否按下以及计时按下时间

我要说的是for循环里面的csae2部分

前面case0和case1还是正常判断按键是否被按下,如果消抖之后确实按键是被按下了就跳到case2部分

判断按键是否松开,如果没有松开,那么key_time就++,key_time加1就表示10ms过去了(定时器PSC设置为800-1,ARR设置为1000-1)然后一直循环,等按键松开之后判断时间,key_time值小于100就表示按键按下时间在1s以内,于是短按标志位置1;key_time值大于100就表示按键按下时间大于1s,于是长按标志位置1。

然后就是按键匹配的功能,我这里在main函数里测试,结果是可以使用的,就是要注意打开定时器的中断     和   标志位在用完之后要置0

在STM32G431RBT6蓝桥杯开发板中有两个基本定时器:TIM6和TIM7;6个通用定时器:TIM2和TIM3,TIM4(全通道)  TIM15,TIM16,TIM17(只有一个或两个通道,但是用来定时还是ok的)2个高级定时器TIM1,TIM8。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值