一、原理图
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
|