GPIO概述
GPIO全称为通用输入输出端口,可以对外设的信息进行采集以及对外设进行控制。
GPIO最大翻转频率计算
GPIO可以进行快速翻转,每次翻转最快只需两个时钟周期。例如STM32的晶振为72MHz,那么GPIO的最快翻转速度为72/2 = 36MHz。对于F1,手册上标注的最快速度为50MHz,该数值是在超频下测量,而不是72MHz。
GPIO的分组
GPIO以大写字母ABC...进行分组,每一个组最多有16个IO,最终标注为PA0~PA15等等。
电气特性
STM32的工作电压:
工作电压范围为2V~3.6V,一般接入3.3V电压。
GPIO的识别电压范围如下:
- 对于CMOS端口,高电平VIH:1.833V~3.6V,低电平VIL:-0.3V~1.164V
- 对于TTL端口,可以兼容5V,在手册上这种IO标注FT字样,如下图:
GPIO的输出电流:
对于单个IO,最大为25mA,这并不是意味着所以IO都可以同时输出25mA,STM32的总输出电流最大为150mA,因此各IO的输出电流之和不能超过150mA
GPIO基本结构
GPIO的基本结构图如下(以F1为例):
上下拉电阻作用范围分析
可以看到,在输入驱动器这个框中有两个电阻,一个连接VDD、一个连接VSS,它们是芯片内部的上拉、下拉电阻。从摆放的位置可以看出,当IO为输入模式时,信号会流入输入驱动器,此时上下拉电阻有效(可以配置成上拉、下拉、浮空);当IO为输出模式时,信号从输出驱动器流出,不经过上下拉电阻,因此输出模式下配置上下拉电阻不起作用。