用户工具

站点工具


icore3l_arm-gd_3
银杏科技有限公司旗下技术文档发布平台
技术支持电话0379-69926675-801
技术支持邮件Gingko@vip.163.com
版本 日期 作者 修改内容
V0.1 2020-11-18 gingko 初次建立





实验三:GPIO输入实验——读取ARM按键状态

一、实验目的与意义

  1. 了解GD32 GPIO结构
  2. 了解GD32 GPIO 特征
  3. 掌握按键判断(判键)方法
  4. 掌握GD32固件库中GPIO属性的配置方法
  5. 掌握KEIL MDK集成开发环境使用方法

二、实验设备及平台

  1. iCore3L双核心板
  2. JLINK(或相同功能)仿真器
  3. Micro USB线缆
  4. Keil MDK开发平台
  5. 装有WIN XP(及更高版本)系统的计算机

三、实验原理

1.按键简介

  • 按键是一种机械器件,按键两端分别对应某电路的两个断点,我们可以通过按键接通和断开控制该电路的电压等参数,我们利用按键做的应用通常有控制继电器、键盘、复位等。随着应用的扩展,按键已成为电路板上不可或缺的一部分。
  • 按键主要有以下四种类型:(本次实验使用的是常开带复位按键)。
    • (1) 常开带复位:初始默认状态是开路,当受力按下时按键使电路连通,受力结束后其自动返回开路状态。
    • (2) 常开不带复位:初始默认状态是开路,每按下一次按键改变一次开闭状态。
    • (3) 常闭带复位:初始默认状态是连通,当受力按下时按键使电路开路,受力结束后其自动返回连通状态。
    • (4) 常闭不带复位:初始默认状态是连通,每按下一次按键改变一次开闭状态。

2.按键消抖

  • 使用手动按键的时候, 由于机械抖动可能造成按键的错误识别。一般手动按下按键然后释放, 按键两片金属膜接触的时间大约为50ms,按键松开到稳定的时间为5-10ms。因此,如果在首次检测到按键被按下后延时20ms左右再次检测,即可确认按键是否真的被按下,从而消除按键抖动造成的错误识别。本实验通过使用定时器给于一定延时后再进行检测,从而有效的避免了按键抖动带来的误判。上拉输入:上拉输入模式与浮空输入模式相比,仅仅是在数据通道上部,接入了一个上拉电阻,这个上拉电阻的阻值为1K欧姆,CPU可以随时在输入数据寄存器的另一端,读出I/O端口的电平状态。这种模式的好处在于我们什么都不输入时,由于内部上拉电阻的原因,处理器会觉得我们输入了高电平,这就避免了不确定的输入。该端口在默认情况下输入为高电平。
  • 本实验通过GD32的GPIO口驱动LED,设定GPIO为推挽输出模式,输出低电平,LED亮;输出高电平,LED灭。驱动原理图如下图所示

* 本实验中按键的一端与GD32的GPIO(PG9)相连,另外一端接地,且PG9外接一个上拉电阻。初始化时把PG9设置成输入模式,当按键未按下时,由于上拉电阻R23的作用,相当于ARM_KEY引脚与D3V3短接,此时ARM_KEY引脚呈高电平;当按键按下时,ARM_KEY与DCOM短接,ARM_KEY引脚呈低电平,从而实现通过按键的松开与按下来控制对ARM_KEY引脚的高低电平输入,然后再通过程序实现用ARM_KEY引脚的高低电平状态来控制三色LED的循环点亮,这就是本实验的实验原理。

四、 实验步骤

  1. 把仿真器与iCore3L的SWD调试口相连(直接相连或者通过转接器相连);
  2. 把iCore3L通过Micro USB线与计算机相连,为iCore3L供电;
  3. 打开Keil MDK开发环境,并打开本实验工程;
  4. 烧写程序到iCore3L上;
  5. 也可以进入Debug 模式,单步运行或设置断点验证程序逻辑。

五、 实验现象

  • 程序下载完成以后,三色LED灯先亮红色,然后按键每按下一次,三色LED颜色变换(按照绿色、蓝色、红色依次轮流变换)一次。
icore3l_arm-gd_3.txt · 最后更改: 2022/03/19 10:55 由 sean