STM32F1开发指南笔记19----按键高级用法——单击、双击、长按、滑动

这篇博客介绍了STM32F1开发中按键的高级应用,包括单击、双击、长按和滑动操作的实现方法。通过消抖处理、时间间隔判断以及按键状态监测,详细讲解了如何判断不同的按键行为。实验证明,这些方法有效且实用。
摘要由CSDN通过智能技术生成

按键分为机械按键和(电容式/电阻式)触摸按键。
机械按键需要消抖操作,触摸按键灵敏度高可以不进行消抖处理。

按键单击属于常规操作,而双击和滑动如何实现呢?

双击判断:
在按键按下并松开后,在一段规定的时间内,判断按键是否再次按下,如果再次按下,即属于双击操作,注意这段规定的时间较短(几十几百毫秒)。

长按判断:
按键按下并维持一段规定的时间,即可判断是长按操作,注意这段规定的时间较长(几秒)。

滑动操作:
从A键滑动到B键,如何判断是滑动而不是A键和B键分别单击:当A键按下并在快松开时同时按住了A键和B键,然后松开A键并按住B键,中间有一个同时按住AB键的时隙,此操作即可判断是滑动。

代码如下:

#include "stm32f10x.h"
#include "sys.h"
#include "delay.h"
#include "led.h"
#include "touch_key.h"
#include "usart.h"

#define KEYA_SPEED1	100	  //长按的时间长度(单位10mS),总共1S
#define KEYA_SPEED2	10	  //双击的时间长度(单位20mS),总共200ms

int main (void){
   //主程序
	u16 k=1000;	//用于滑动加减计数
	u8 a=0,b,c=0;
	u8 s=0; //刚刚结束滑动标志
	RCC_Configuration(); //系统时钟初始化 
	
  • 3
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值