[研电赛技术支持] GD32F103 KEY实验学习

[复制链接]
631|0
 楼主| tpgf 发表于 2024-11-4 10:55 | 显示全部楼层 |阅读模式
一、原理图

1.1、LED原理图,PA4引脚给低电平灯亮

777656728378cefc44.png

1.2、KEY原理图,按键按下PA2为低电平

9674767283788b3884.png

二、寄存器介绍(由于在LED实验已经介绍过“GD32F103,LED实验-CSDN博客”,这里只贴出两个用到的寄存器,方便参考)

2.1、端口控制寄存器0(GPIOx_CTL0,x=A~G)

68007672837837f9d6.png

4263567283778c83c4.png

2.2、端口输入状态寄存器(GPIOx_ISTAT,x=A~G)

4028167283766e10b8.png

三、函数介绍

4957967282f6104f43.png

四、程序实验

实验目的就是按下按键灯亮,松开按键灯灭

4.1、初始化LED和KEY函数

650167282f5ba8043.png

这里初始化PA2为浮空输入,但是根据GPIOx_CTL0寄存器发现我们设置为输入的时候,速度应该设置为00输入模式,但是这里确是设置的50MHz,我们跳转到函数gpio_init里面,由于GPIO_MODE_IN_FLOATING=0x04,所以不满足下面这个判断,也就没有设置speed

2141367282f566ea73.png

4.2、功能实现

5680067282f52083fe.png

可以看到这里我们延时了20ms,为什么需要延时20ms,因为我们按键按下时可能会有杂波,导致按键响应异常,具体可以参考博文“【单片机】按键消抖及原理(硬件和软件方法详解)-CSDN博客”的一二章
————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/weixin_44501991/article/details/143433377

您需要登录后才可以回帖 登录 | 注册

本版积分规则

2392

主题

17668

帖子

21

粉丝
快速回复 在线客服 返回列表 返回顶部