GD32F450/F470旗舰开发板学习教程—10 按键实验

大家好,我是凌智君。
这节课大家一起学习一下单片机GPIO的输入模式,之前几节课讲了一下如何配置单片机实现GPIO的输出功能,这一节一起学习一下使用GPIO的输入功能读取外部输入信号,废话不多说了,直接上代码。
一、实验目的:
学习如何配置单片机实现外部输入。
二、实验现象:
下载程序后复位开发板,按键 KEY1 按下,LED3 亮,松开按键 KEY1,LED3 灭。
三、实验原理
问题1:按键是怎么样产生信号的?
原因:按键的一侧接到单片机引脚,另外一侧接到电源引脚(GND或者3.3V),正常状态下,没有输入信号,当按键按下,单片机引脚和电源引脚连通。但是正常情况下,会给按键设置一个默认输入状态,下面会讲解。
问题2:按键输入的原理是什么?
原因:原理图如图所示,默认状态下,通过一个上拉电阻连接到单片机引脚,这时候单片机引脚默认是3.3V,当按键按下时,单片机引脚会直连到GND,这时候单片机引脚输入是0V,会产生一个电平的变化。

问题3:怎么判断有按键按下?
原因:单片机不断扫描读取引脚电平,默认状态下是高电平,当按键按下时,输入低电平,单片机读取到电平变化,则表明按键按下。
问题4:程序是如何实现的?
首先将单片机引脚初始化为输入模式,直接调用GD的库函数即可。
然后,宏定义一下单片机引脚电平变化分别代表的状态,RESET 低电平代表按下,SET高电平代表按键弹起。
在系统初始化调用初始化函数
在执行函数内判断按键是否按下,其中进行10ms延时,用于按键消抖操作,当按键按下时,LED3灯亮,松开灯灭。
以上就是整个配置单片机GPIO输入的配置过程,读取外部输入的高低电平信号。
配套视频链接:
待更新
开发板链接:
https://item.taobao.com/item.htm?spm=a1z10.5-c.w4002-13627328884.33.7bc1550ahpVF5F&id=691783952745
公众号:

凌智君:
YunXiang_TechShare
(添加V,有相关技术交流群)