完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本帖最后由 hejecu 于 2018-11-4 10:24 编辑 第七章 按键输入实验 7.1 实验目的 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灭。
|
|
相关推荐
|
|
2105 浏览 1 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
1941 浏览 3 评论
4537 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
2084 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
2599 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 05:34 , Processed in 0.726889 second(s), Total 65, Slave 47 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号