蓝桥杯比赛按键扫描是需要考生自己编写的,而按键也会考到长按和短按的功能,按键本身也需要消抖。那么接下来先定义按键的枚举变量。

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

蓝桥杯嵌入式按键扫描函数相关推荐

  1. 【学习】蓝桥杯嵌入式--按键输入

    蓝桥杯必考的四个东西(至少我认为的是这样的)LED灯 LCD, 按键,EEPROM.在上一篇文章介绍的是流水灯,这一篇就是按键输入. 实现的任务就是用LCD做一个菜单,用按键控制不同的LED流转模式. ...

  2. 【蓝桥杯嵌入式(G431-HAL库)】Led 与按键

    [备赛蓝桥杯嵌入式(G431-HAL库)]Led 与按键 实训平台:STM32G431RBT6 辅助工具:STM32CubeMx 01 基本简介 Led和按键是GPIO口输入和输出的应用. Led考察 ...

  3. 蓝桥杯嵌入式(G431RBT6):按键

    文章目录 前言 一.单击按键 二.按键长短按 总结 前言 按键可以说是蓝桥杯嵌入式组必考的内容,按键简单,但却很重要.板子上的功能都是围着按键展开的. 本文主要讲解按键长短按,定义了一个结构体,用来存 ...

  4. 蓝桥杯嵌入式1--滴答定时器,输入输出模式,LED,按键

    蓝桥杯嵌入式1--滴答定时器,输入输出模式,LED,按键 滴答定时器 输入输出模式 LED 按键 滴答定时器 滴答定时器是放在stm32内核中的一个定时器,用户不可以随便操作滴答定时器的寄存器,滴答定 ...

  5. 突击蓝桥杯嵌入式(四)——滴答定时器、按键的三行代码消抖、LCD与ADC

    突击蓝桥杯嵌入式(四)--滴答定时器.按键的三行代码消抖.LCD与ADC 1.滴答定时器定时运行 我们利用滴答定时器,让LED每隔1s闪烁一次 //首先我们定义一个变量 __IO uint32_t u ...

  6. 【蓝桥杯嵌入式主板G4】第五章 利用Delay函数来实现LED的闪烁

    在上一章给大家介绍了点亮LED,本章将教大家如何利用Delay来实现LED的闪烁. 本章的工程直接套用点亮LED的历程,stm32cubeMX的配置也不需要重新配置,可以直接使用,只需要在MDK中修改 ...

  7. 第九届蓝桥杯-嵌入式比赛体会与备赛经验

    原文地址:http://www.cnblogs.com/NickQ/p/8721317.html 说起蓝桥杯,相信很多电子类的学生,应该很熟悉了吧...上周日,我也去湖北工业大学参与了一下.说起这次经 ...

  8. 蓝桥杯嵌入式CT117E硬件开发平台经验分享11 | 第九届蓝桥杯国赛题

    基于 基于 CT117E 嵌入式竞赛板 嵌入式竞赛板 的 "电子秤"程序设计与调试 赛题硬件框图 由于赛题细节多,赛题PDF要求书放入了附件,链接后续加入.本文主要讲述本届题目的困 ...

  9. 蓝桥杯嵌入式类比赛经验分享

    第八届蓝桥杯大赛(嵌入式组) 蓝桥杯的嵌入式组是Stm32rbt6单片机的编程比赛,我想对于学习电子信息工程专业的同学这不是一个陌生的名词,如果你是电信专业的大四同学却没有听说过msp430或者stm ...

最新文章

  1. 【java】增强for循环的简单使用(遍历数组)
  2. tankwar的java坦克子弹撞墙_TankWar 单机(JAVA版)版本2.0.5 坦克撞墙的处理
  3. 【译】在 Linux 上不安装 Mono 构建 .NET Framework 类库
  4. Java项目之家庭记账软件
  5. python 课堂笔记 420_一位初学Python同学的课堂笔记,仿佛看到当年的自己
  6. 未来计算机作文700字,未来的科技作文700字
  7. 警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property ..
  8. 4图纸 rust_安诺伊模具丨机加工图纸有英语看不懂?不怕!史上最全翻译都在这...
  9. JDK集合框架结构分析(二)
  10. 右键菜单的过滤和启动(转载)
  11. HTML5定稿一周年,你必须要重新认识HTML5了
  12. 银行转账java代码事务实现_Spring事务银行转账示例
  13. 卡尔滤波算法 java_卡尔曼滤波算法及其代码
  14. mac地址被路由器拉黑_我买了一个新路由器,告诉我我被黑了
  15. 怎样配置更完美的图形工作站
  16. python识别中文验证码_Python实现验证码识别
  17. java根据word模板导出_java如何根据word模板生成word文档
  18. LocalDateTime用法
  19. 基于 Java 的短视频实战项目
  20. SEASKY开源机械键盘 AD PCB 教程

热门文章

  1. java常用的转义字符_java常用转义字符
  2. 第十八章 CSP Session 管理 - 与 CSP.Session 的Sessions
  3. 【案例介绍】华润置地·园区智能运行中心
  4. 网页版bilibili用adblockPlus拦截三连等弹窗
  5. 2021-06 青少年软件编程(C语言)等级考试试卷(一级)解析
  6. fread文件读不完整问题解决
  7. java消息路由_SIP消息路由机制
  8. jQuery serialize()、serializeArray()
  9. requests爬取微博
  10. MotionEvent对象