江南体育app下载 · ACE缓冲器-小型
  • GD32开发实战指南(基础篇) 第2章 初始GPIO流水灯
GD32开发实战指南(基础篇) 第2章 初始GPIO流水灯

GD32开发实战指南(基础篇) 第2章 初始GPIO流水灯

  的朋友都知道,学习的第一个例程就是流水灯,要想实现流水灯,首先一定要了解GPIO的工作原理。GPIO的基本结构如下图所示。

  浮空输入:浮空(floating)就是逻辑器件的输入引脚即不接高电平,也不接低电平。由于逻辑器件的内部结构,当它输入引脚悬空时,相当于该引脚接了高电平。一般实际运用时,引脚不建议悬空,易受干扰。通俗讲就是让管脚什么都不接,浮空着。

  也没有接下拉电阻,经由触发器输入。配置成这一个模式后,用电压变量引脚电压为1点几伏,这是个不确定值。由于其输入阻抗比较大,一般把这种模式用于标准的通讯协议,比如I

  输入:信号进入后不经过上拉电阻或者下拉电阻,关闭施密特触发器,经由另一线路把电压信号传送到片上外设模块。模拟输入是指传统方式的输入,数字输入是输入PCM

  ,即0、1的二进制数字信号,通过数模转换,转换成模拟信号,经前级放大进入

  C采集电压信号。所以能理解为模拟输入的信号是未经处理的信号,是原汁原味的信号。

  推挽式输出:可以输出高、低电平,连接数字器件;推挽结构一般是指两个三极管分别受两个互补信号的控制,总是在一个三极管导通的时候另一个截止。高低电平由IC的

  ,以推挽方式存在于电路中,各负责正负半周的波形放大任务,电路工作时,两只对称的功率开关管每次只有一个导通,所以导通损耗小、效率高。输出既可以向负载灌电流,也可以从负载抽取电流。推拉式输出级既提高电路的负载能力,又提高开关速度。

  GD32 有很多的内置外设,这些外设的外部引脚都是与 GPIO 复用的。也就是说,一个 GPIO若能复用为内置外设的功能引脚,那么当这个 GPIO 作为内置外设使用的时候,就叫做复用。当I/O端口被配置为复用功能时:

  ● 在每个APB2时钟周期,出现在I/O脚上的数据被采样到输入数据寄存器

  大家都知道,MCU 都有串口,GD32 有好几个串口。比如说 GD32F207IK有 8个串口,我们大家可以查手册知道,串口 0 的引脚对应的 IO 为 PA9,PA10.PA9, PA10 默认功能是 GPIO, 所以当PA9,PA10 引脚作为串口0的 TX,RX 引脚使用的时候,那就是端口复用。

  为了使不同器件封装的外设 IO 功能数量达到最优,可以把一些复用功能重新映射到其他一些引脚上。 GD32 中有很多内置外设的输入输出引脚都具有重映射(remap)的功能。 我们大家都知道每个内置外设都有若干个输入输出引脚,一般这些引脚的输出端口都是固定不变的,为了让设计工程师可以更好地安排引脚的走向和功能,在 GD32中引入了外设引脚重映射的概念,即一个外设的引脚除了具有默认的端口外,还能够最终靠设置重映射寄存器的方式,把这个外设的引脚映射到其它的端口。

  从表中能够准确的看出,默认情况下,串口 0复用的时候的引脚位 PA9、PA10,同时我们大家可以将 TX 和 RX 重新映射到管脚 PB6 和 PB7 上面去。所以重映射我们同样要使能复用功能的时候讲解的 2 个时钟外,还要使能 AFIO 功能时钟,然后要调用重映射函数。

  发光二极管是属于二极管的一种,具有二级管单向导电特性,即只有在正向电压(二极管的正极接正,负极接负)下才能导通发光。PF6引脚接发光二极管(LED1)的正极,所以PF6引脚输出高电平LED1亮,PF6引脚输出低电平LED1熄灭,其他LED同理。

  值得注意的,不同的开发板,LED连接的GPIO一般是不同的,请注意修改。

  要想真正掌握一款单片机,分析寄存器是必不可少,但是对于GD32来再说,GD已经将寄存器操作封装成库函数,开发者只需要调用库函数即可,对于初学者来说,只需学会使用使用函数即可,对于没有基础的读者朋友就不必细究每个寄存器,当学到某些特定的程度,再来一探究竟吧,笔者再这里只是给出GPIO的寄存配置相关配置表,在后面的章节也是如此。好了,继续步入正题吧。

  点亮LED,基本步骤是:配置寄存器;控制寄存器。库开发只是将传统的配置方式编程函数,是的单片机开发变得简单方便快捷。

  GPIO是开发GD32最基本的配置,所以掌握GPIO的配置显得很重要。要实现流水灯,一般步骤可以总结为如下:

  代码还是最简单的,首先开启GPIO的时钟,然后对GPIO初始化,主要是设置模式和速率,GPIO的初始化代码如下: