1. GPIO概述
GPIO是通用输入/输出端口的简称、是STM32可控制的引脚。GPIO的引脚与外部硬件设备链接,可实现与外部通讯、控制外部硬件或者采集外部硬件数据的功能。每个通用 I/O 端口包括4 个 32 位配置寄存器:GPIO 端口模式寄存器(GPIOx_MODER)、GPIO 端口输出类型寄存器(GPIOx_OTYPER)、GPIO 端口输出速度寄存器(GPIOx_OSPEEDR)、GPIO 端口上拉/下拉寄存器 (GPIOx_PUPDR);2 个 16位数据寄存器:GPIO 端口输入数据寄存器(GPIOx_IDR) 、GPIO 端口输出数据寄存器(GPIOx_ODR);1 个 32 位置位/复位寄存器(GPIOx_BSRR);1 个 32 位配置锁定寄存器(GPIOx_LCKR);2 个 32 位复用功能选择寄存器:GPIO 复用功能低位寄存器(GPIOx_AFRL)、GPIO 复用功能高位寄存器(GPIOx_AFRH)——配置对应的 IO 口。
以下是经典IO端口位的基本结构:
1.1 保护二极管
IO引脚上下两边两个⼆极管⽤于防⽌引脚外部过⾼/过低的电压输⼊,当引脚电压⾼于VDD时,上⽅的⼆极管导通,当引脚电压低于VSS时,下⽅的⼆极管导通,防⽌不正常电压引⼊芯⽚导致芯⽚烧毁。尽管如此,还是不能直接外接⼤功率器件,须加⼤功率及隔离电路驱动,防⽌烧坏芯⽚或者外接器件⽆法正常⼯作。
1.2 P-MOS管和N-MOS管
GPIO为输出模式,由P-MOS管和N-MOS管组成的单元电路使得GPIO具有“推挽输出”和“开漏输出”的模式。这两