注册 登录
电子工程世界-论坛 返回首页 EEWORLD首页 频道 EE大学堂 下载中心 Datasheet 专题
hejecu的个人空间 https://home.eeworld.com.cn/space-uid-309995.html [收藏] [复制] [分享] [RSS]
日志

【连载】【星光闪电STM32F407开发板】第七章 按键输入实验

已有 604 次阅读2018-11-4 15:08 |个人分类:闪电F407开发板资料

按键输入实验7.1 实验目的
本实验旨在学习STM32IO作为数字输入口的使用方法,开发板板载4个功能按键,通过这几个按键学习机械按键的检测原理。
7.2 实验简介
常用的按键键盘分为独立式按键和矩阵式按键。独立式按键电路为每个按键占用一个IO口,按键数目较少时(6个以内)采用这种方式较好;矩阵式按键为行列扫描式按键电路,当按键较多时,采用这种方式为宜,占用IO较少。本实验采用的就是独立式按键电路。下图为1个4*4矩阵键盘示例。
7.2.1
按键在闭合和断开的瞬间,不会立即处于稳定的闭合或断开状态,会有一个抖动的过程,一般为5-10ms,如图7.2.2,在设计按键驱动程序时要注意这点,消除抖动的干扰,不然会出现按下一次按键,执行多次的现象,这就是抖动造成的。
7.2.2
按键消抖方法:
① 检测到按键按下,延时20ms,再检测按键,如果依然按下,判断按键有效,执行相关操作。
② 检测到按键按下,延时1ms,循环检测20次,20次后,按键依然按下,判断按键有效,执行相关操作。
③ 检测到按键按下,利用定时器定时1ms,后再检测,循环检测20次,20次后,按键依然按下,判断按键有效,执行相关操作。
3种方法,第一种实时性最低,第三种实时性最高,星光开发板按键驱动采用的是第二种,后面章节学完定时器后,用户可以尝试实现第3种方法。
7.3 电路设计
闪电F407开发板载有4个功能按键,电路如图7.3.1所示:
图7.3.1
其中KEY1按键连接到PA0上,可用作普通按键,也可以用作待机唤醒输入,另外3个按键用作普通按键,KEY2-KEY4分别连接到STM32的PE2、PE3、PE4,这4个按键都可以作为普通IO输入,这4个按键都是低电平有效的。
7.4 软件设计
打开光盘目录下的3、程序源码->1、基础实验->下的实验4 按键输入实验工程,打开左侧目录树BSP下的key.c文件,此为按键的驱动程序文件,工程目录如下图所示:
图7.4.1
打开key.c文件,代码如下:
                                       
                                       
                                       
                                       
                                       
                                         
按键驱动程序,用到一个按键信息结构体,定义在头文件key.h中,如下所示:
打开main.c文件,按键应用的处理代码如下:
                                 
                                 
7.5 下载验证
用MINI USB线通过CN3的USB口连接电脑和开发板,拨动电源开关给开发板上电,D3电源指示灯点亮,连接好JLINK/ST-LINK下载调试器,打开“实验4 按键输入实验”工程代码,编译下载,按下KEY1键D4亮,按下KEY2键D4灭,按下KEY3键D5亮,按下KEY4键D5灭。



此内容由EEWORLD论坛网友hejecu原创,如需转载或用于商业用途需征得作者同意并注明出处

本文来自论坛,点击查看完整帖子内容。

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

热门文章