GPIO
STM32F407有7组IO。分别为GPIOA~GPIOG,每组IO有16个IO口,共有112个IO口
通常称为 PAx、PBx、PCx、PDx、PEx、PFx、PGx,其中x为0-15
GPIO工作模式
4种输入模式
(1)GPIO_Mode_IN_FLOATING 浮空输入
(2)GPIO_Mode_IPU 上拉输入
(3)GPIO_Mode_IPD 下拉输入
(4)GPIO_Mode_AIN 模拟输入
4种输出模式
(5)GPIO_Mode_Out_OD 开漏输出(带上拉或者下拉)
(6)GPIO_Mode_AF_OD 复用开漏输出(带上拉或者下拉)
(7)GPIO_Mode_Out_PP 推挽输出(带上拉或者下拉,在M4内核是支持的,M3支持)
(8)GPIO_Mode_AF_PP 复用推挽输出(带上拉或者下拉,在M4内核是支持的,M3支持)
4种最大输出速度
(1)2MHZ (低速)
(2)25MHZ (中速)
(3)50MHZ (快速)
(4)100MHZ (高速)
周期 = 频率的倒数 T = 1 / f
GPIO电路图
GPIO的CPU配置
1,选择输入/输出驱动模式
2,配置电阻的上下拉
VDD拉上,接入电源使电压增大
VSS拉下,分走电压使电压减小
目的 - 改变流入电路的电流 - 启动电路或保护电路
3,是否采用模拟功能 - 直接处理外部的模拟信号 — 数模转换
4,是否采用复用功能
5,输入数据寄存器 - 读写
相关概念
保护二极管
引脚上的这两个保护二极管可以将引脚外部过高或过低的电压进行钳位,当引脚电压高于VDD_FT 时,上方的二极管导通吸收这个高电压,当引脚电压低于VSS 时,下方的二极管导通,防止不正常电压引入芯片导致芯片烧毁,也叫钳位二极管。
P-MOS N-MOS管
由P-MOS管和N-MOS管组成的单元电路使得GPIO具有“推挽输出”和“开漏输出”的模式
在该结构单元输入一个高电平时,P-MOS 管导通,N-MOS 管截止,对外输出高电平(3.3V)。在该单元输入一个低电平时,P-MOS 管截止,N-MOS 管导通,对外输出低电平(0V)。
推挽模式 - 两个MOS管都是导通状态
GPIO_InitStructure.GPIO_OType=GPIO_OType_PP; //推挽输出 CPU写入1,外部得到逻辑1。CPU写入0,外部得到逻辑0
开漏模式 - 只有N-MOS管是导通的
GPIO_InitStructure.GPIO_OType = GPIO_OType_OD; //开漏输出 CPU写入0,外部得到逻辑0。外部无法通过CPU得到逻辑1
通过上拉电阻得到高电压 - 输出功耗相对高一点