打印
[研电赛技术支持]

GD32F103 KEY实验学习

[复制链接]
107|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tpgf|  楼主 | 2024-11-4 10:55 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
一、原理图

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



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



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

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





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



三、函数介绍



四、程序实验

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

4.1、初始化LED和KEY函数



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



4.2、功能实现



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

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

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

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1931

主题

15611

帖子

11

粉丝