蓝桥杯嵌入式按键扫描函数
蓝桥杯比赛按键扫描是需要考生自己编写的,而按键也会考到长按和短按的功能,按键本身也需要消抖。那么接下来先定义按键的枚举变量。
typedef enum
{keycheck, //按键检测keycpress, //按键按下keyrelease, //按键释放
}KEY_State;KEY_State KeyState = keycheck ;
接着利用宏定义将按键的四个读入函数进行定义。
#define B1 HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_0)
#define B2 HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_1)
#define B3 HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_2)
#define B4 HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_0)
紧接着定义需要使用的按键变量。
uint8_t KEY_Value = 0 ; //获取按键值
uint8_t KEY_Flag = 0 ; //按键按下松开后的标记位
uint32_t KEY_Press_TIME = 0 ; //按键按下后多长时间有效,该变量需要放在嘀嗒定时器里
下面开始放按键扫描函数。
void Key_Scan(void)
{switch(KeyState){case KEY_Check:{if((B1==GPIO_PIN_RESET)||(B2==GPIO_PIN_RESET)||(B3==GPIO_PIN_RESET)||(B4==GPIO_PIN_RESET))KeyState=keypress;}break;case keypress:{if(B1==GPIO_PIN_RESET)KEY_Va
蓝桥杯嵌入式按键扫描函数相关推荐
- 【学习】蓝桥杯嵌入式--按键输入
蓝桥杯必考的四个东西(至少我认为的是这样的)LED灯 LCD, 按键,EEPROM.在上一篇文章介绍的是流水灯,这一篇就是按键输入. 实现的任务就是用LCD做一个菜单,用按键控制不同的LED流转模式. ...
- 【蓝桥杯嵌入式(G431-HAL库)】Led 与按键
[备赛蓝桥杯嵌入式(G431-HAL库)]Led 与按键 实训平台:STM32G431RBT6 辅助工具:STM32CubeMx 01 基本简介 Led和按键是GPIO口输入和输出的应用. Led考察 ...
- 蓝桥杯嵌入式(G431RBT6):按键
文章目录 前言 一.单击按键 二.按键长短按 总结 前言 按键可以说是蓝桥杯嵌入式组必考的内容,按键简单,但却很重要.板子上的功能都是围着按键展开的. 本文主要讲解按键长短按,定义了一个结构体,用来存 ...
- 蓝桥杯嵌入式1--滴答定时器,输入输出模式,LED,按键
蓝桥杯嵌入式1--滴答定时器,输入输出模式,LED,按键 滴答定时器 输入输出模式 LED 按键 滴答定时器 滴答定时器是放在stm32内核中的一个定时器,用户不可以随便操作滴答定时器的寄存器,滴答定 ...
- 突击蓝桥杯嵌入式(四)——滴答定时器、按键的三行代码消抖、LCD与ADC
突击蓝桥杯嵌入式(四)--滴答定时器.按键的三行代码消抖.LCD与ADC 1.滴答定时器定时运行 我们利用滴答定时器,让LED每隔1s闪烁一次 //首先我们定义一个变量 __IO uint32_t u ...
- 【蓝桥杯嵌入式主板G4】第五章 利用Delay函数来实现LED的闪烁
在上一章给大家介绍了点亮LED,本章将教大家如何利用Delay来实现LED的闪烁. 本章的工程直接套用点亮LED的历程,stm32cubeMX的配置也不需要重新配置,可以直接使用,只需要在MDK中修改 ...
- 第九届蓝桥杯-嵌入式比赛体会与备赛经验
原文地址:http://www.cnblogs.com/NickQ/p/8721317.html 说起蓝桥杯,相信很多电子类的学生,应该很熟悉了吧...上周日,我也去湖北工业大学参与了一下.说起这次经 ...
- 蓝桥杯嵌入式CT117E硬件开发平台经验分享11 | 第九届蓝桥杯国赛题
基于 基于 CT117E 嵌入式竞赛板 嵌入式竞赛板 的 "电子秤"程序设计与调试 赛题硬件框图 由于赛题细节多,赛题PDF要求书放入了附件,链接后续加入.本文主要讲述本届题目的困 ...
- 蓝桥杯嵌入式类比赛经验分享
第八届蓝桥杯大赛(嵌入式组) 蓝桥杯的嵌入式组是Stm32rbt6单片机的编程比赛,我想对于学习电子信息工程专业的同学这不是一个陌生的名词,如果你是电信专业的大四同学却没有听说过msp430或者stm ...
最新文章
- 【java】增强for循环的简单使用(遍历数组)
- tankwar的java坦克子弹撞墙_TankWar 单机(JAVA版)版本2.0.5 坦克撞墙的处理
- 【译】在 Linux 上不安装 Mono 构建 .NET Framework 类库
- Java项目之家庭记账软件
- python 课堂笔记 420_一位初学Python同学的课堂笔记,仿佛看到当年的自己
- 未来计算机作文700字,未来的科技作文700字
- 警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property ..
- 4图纸 rust_安诺伊模具丨机加工图纸有英语看不懂?不怕!史上最全翻译都在这...
- JDK集合框架结构分析(二)
- 右键菜单的过滤和启动(转载)
- HTML5定稿一周年,你必须要重新认识HTML5了
- 银行转账java代码事务实现_Spring事务银行转账示例
- 卡尔滤波算法 java_卡尔曼滤波算法及其代码
- mac地址被路由器拉黑_我买了一个新路由器,告诉我我被黑了
- 怎样配置更完美的图形工作站
- python识别中文验证码_Python实现验证码识别
- java根据word模板导出_java如何根据word模板生成word文档
- LocalDateTime用法
- 基于 Java 的短视频实战项目
- SEASKY开源机械键盘 AD PCB 教程
热门文章
- java常用的转义字符_java常用转义字符
- 第十八章 CSP Session 管理 - 与 CSP.Session 的Sessions
- 【案例介绍】华润置地·园区智能运行中心
- 网页版bilibili用adblockPlus拦截三连等弹窗
- 2021-06 青少年软件编程(C语言)等级考试试卷(一级)解析
- fread文件读不完整问题解决
- java消息路由_SIP消息路由机制
- jQuery serialize()、serializeArray()
- requests爬取微博
- MotionEvent对象