欢迎光临散文网 会员登陆 & 注册

GD32F427/F407领航者开发板学习教程—11 按键实验

2023-03-24 15:33 作者:凌智科技  | 我要投稿

    大家好,我是凌智君。

    之前的几节课一直介绍单片机GPIO输出功能的使用,这节课介绍一下输入功能的使用,单片机的GPIO不仅有输出功能,还有输入功能,这里通过使用按键,控制输入信号,每当按下一下按键都会输入一个不同的信号,单片机通过判断是否有这个信号输入来判断按键是否按下,废话不多说了,直接结合硬件看软件。

    一、实验目的:

    如何配置单片机实现GPIO的输入功能。

    二、实验现象:

    下载程序后复位开发板,按键 KEY1 按下,LED3 亮,松开按键 KEY1,LED3 灭。

    三、实验原理

    问题1:什么是按键?

    原因:按键有很多类型,有机械按键,也有微动按键,领航者开发板用的是机械式按键,旗舰开发板用的微动按键,按键的原理很简单,按键按下,两侧导通,按键松开,两侧断开。


    问题2:按键的电路原理是什么?

    原因:如图所示,KEY1接口连接到单片机的GPIO引脚,通过10K电阻对其上拉,在这种情况下,单片机引脚一直是高电平,单片机读取的电平一直是高电平,当按键KEY1按下的时候,单片机引脚直接连接到了GND,所以此时单片机读取的电平是低电平,这样就会有有一个电平的变化。

按键原理

    问题3:程序是如何实现的?

    原因:首先对引脚进行初始化,将引脚初始化为输入模式,这里对四个按键都进行了初始化,对应的函数在KEY.c文件。

    在KEY.h文件里面声明一下函数和变量,方便外部调用,在LED的时候,宏定义是设置引脚高低电平,属于输出,在按键KEY,宏定义是读取引脚电平,属于输入,注意两个函数的区别。

    在系统初始化函数和执行函数里面调用一下,实现实验效果。

    这里按键需要一个消抖,基本是这样的,先判断按键是否按键,延时一段时间,再判断一次,如果两次都成功了,那么确实是按下了,如果只有一次,那么就是异常信号导致的,或者按键没按到位,这样可以有效的进行消抖。

    按键KEY的程序这里就列出来了,LED相关的程序和之前教程介绍的一样,这里就不再赘述了,将程序下载到开发板内,然后复位开发板就可以实现实验效果了。


配套视频链接:

待更新

开发板链接:

https://item.taobao.com/item.htm?spm=a230r.1.14.23.711d35176CsxjD&id=694056890543&ns=1&abbucket=15#detail


公众号:


公众号

凌智君:

YunXiang_TechShare

(添加V,有相关技术交流群)


GD32F427/F407领航者开发板学习教程—11 按键实验的评论 (共 条)

分享到微博请遵守国家法律