一、GPIO简介
什么是GPIO
GPIO即通用输入输出端口,全称General Purpose Input Output,是控制或者采集外部器件的信息的外设,即负责输入输出。
它按组分配存在,每组最多16个IO口,组数视芯片而定。比如STM32F407ZGT6是144脚的芯片,其IO口共分为7组,分别是GPIOA、GPIOB、GPIOC、GPIOD、GPIOE、GPIOF、GPIOG,其中共有112个IO口可供我们编程使用。
IO口电平兼容问题:
凡是有FT标志的,都是兼容5V电平的IO口,可以直接接5V;凡是不带FT标志的,不要接5V;
注意:如果引脚设置的是模拟输入模式,则不能接5V!具体可详见STM32F407ZG的数据手册(表5 大容量STM32F40xxx引脚定义);
GPIO的基本结构

如上图所示,可以看到右边只有I/O引脚,这个I/O引脚就是我们可以看到的芯片实物的引脚,其他部分都是GPIO的内部结构。
①保护二极管
保护二极管共有两个,用于保护引脚外部过高或过低的电压输入。
当引脚输入电压高于VDD时,上面的二极管导通,当引脚输入电压低于VSS时,下面的二极管导通,从而使输入芯片内部的电压处于比较稳定的值。虽然有二极管的保护,但这样的保护却很有限,大电压大电流的接入很容易烧坏芯片。所以在实际的设计中我们要考虑设计引脚的保护电路
②上拉、下拉电阻
它们阻值大概在30~50KΩ之间,可以通过上、下两个对应的开关控制,这两个开关由寄存器控制。
当引脚外部的器件没有干扰引脚的电压时,即没有外部的上、下拉电压,引脚的电平由引脚内部上、下拉决定,开启内部上拉电阻工作,引脚电平为高,开启内部下拉电阻工作,则引脚电平为低。同样,如果内部上、下拉电阻都不开启,这种情况就是我们所说的浮空模式。浮空模式下,引脚的电平是不可确定的。
引脚的电平可以由外部的上、下拉电平决定。需要注意的是,STM32的内部上拉是一种“弱上拉”,这样的上拉电流很弱,如果有要求大电流还是得外部上拉。
③施密特触发器
对于标准施密特触发器,当输入电压高于正向阈值电压,输出为高;当输入电压低于负向 阈值电压,输出为低;当输入在正负向阈值电压之间,输出不改变,也就是说输出由高电准位翻转为低电准位,或是由低电准位翻转为高电准位对应的阈值电压是不同的。只有当输入电压发生足够的变化时,输出才会变化,因此将这种元件命名为触发器。这种双阈值动作被称为迟滞现象,表明施密特触发器有记忆性。
施密特触发器可作为波形整形电路,能将模拟信号波形整形为数字电路能够处理的方波波形,而且由于施密特触发器具有滞回特性,所以可用于抗干扰,其应用包括在开回路配置中用于抗扰,以及在闭回路正回授/负回授配置中用于实现多谐振荡器。
④P-MOS管和N-MOS管
这个结构控制GPIO的开漏输出和推挽输出两种模式。
开漏输出:输出端相当于三极管的集电极,要得到高电平状态需要上拉电阻才行。
推挽输出:这两只对称的MOS管每次只有一只导通,所以导通损耗小、效率高。
输出既可以向负载灌电流,也可以从

最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



