一 GPIO介绍:
GPIO 是通用输入输出端口的简称,
简单来说就是 STM32 可控制的引脚,STM32 芯片
的 GPIO 引脚与外部设备连接起来,从而实现与外部通讯、控制以及数据采集的功能。
STM32 芯片的 GPIO 被分成很多组,每组有 16 个引脚。
如型号为 STM32F4IGT6 型号的芯片有 GPIOA、GPIOB、GPIOC 至 GPIOI 共 9 组 GPIO,芯片一共 176 个引脚,其中 GPIO
就占了一大部分,所有的 GPIO 引脚都有基本的输入输出功能。
二基本的输出功能:
由 STM32 控制引脚输出高、低电平,实现开关控制,如把 GPIO
引脚接入到 LED 灯,那就可以控制 LED 灯的亮灭,引脚接入到继电器或三极管,那就可
以通过继电器或三极管控制外部大功率电路的通断。
三GPIO基本结构:
(1). 保护二极管及上、下拉电阻
保护二极管:
引脚的两保护个二级管可以防止引脚外部过高或过低的电压输入,当引脚电压高于
VDD_FT时,上方的二极管导通,当引脚电压低于 VSS时,下方的二极管导通,防止不正常
电压引入芯片导致芯片烧毁。(正向导通,反向截止)。
上拉、下拉电阻
GPIO口通常有3种模式, 高电平 低3电平 高阻态(断开或者浮空状态),上拉下拉作用就是防止输入端在悬空状态,使其有确定状态,减少外部对芯片的干扰。上拉时引脚为高电平下拉时为低电平
(2)P-MOS 管和 N-MOS 管
图中:GPIO 引脚线路经过上、下拉电阻结构后,向上流向“输入模式”结构,向下流向“输
出模式”结构。线路经过一个由 P-MOS 和 N-MOS 管组成的单元电路。
这个结构使 GPIO 具有了“推挽输出”和“开漏输出”两种模式
工作过程:
推挽输出模式
该结构中输入高电平时,上方的 P-MOS 导通,下方的 N-MOS 关闭,对外输出高电平;而在该结构中输
入低电平时,N-MOS 管导通,P-MOS 关闭,对外输出低电平。当引脚高低电平切换时,
两个管子轮流导通,一个负责灌电流,一个负责拉电流,使其负载能力和开关速度都比普
通的方式有很大的提高。
开漏输出模式
上方的 P-MOS 管完全不工作。如果我们控制输出为 0,低电平,
则 P-MOS 管关闭,N-MOS 管导通,使输出接地,若控制输出为 1 (它无法直接输出高电平)
时,则 P-MOS 管和 N-MOS 管都关闭,所以引脚既不输出高电平,也不输出低电平,为高
阻态。为正常使用时必须接上拉电阻(可用 STM32 的内部上拉,但建议在 STM32 外部再接
一个上拉电阻。
注意:只有当所有引脚都输出高阻态,才由上拉电阻提供高电平,
此高电平的电压为外部上拉电阻所接的电源的电压。若其中一个引脚为低电平,那线路就
相当于短路接地,使得整条线路都为低电平,0 伏。
应用领域:推挽输出模式一般应用在输出电平为 0 和 3.3 伏而且需要高速切换开关状态的场合。
开漏输出一般应用在 I2C、SMBUS 通讯等需要“线与”功能的总线电路中。除此之外,
还用在电平