一、GPIO简介

(一)GPIO是什么

GPIO (general purpose intput output )是通用输入输出端口的简称,可以通过软件来控制其输入和输出。STM32芯片的GPIO引脚与外部设备连接起来,从而实现与外部通讯、控制以及数据采集的功能。

(二)STM32引脚分类

电源管脚、晶振管脚、复位管脚、下载管脚、BOOT管脚、GPIO管脚

(三)如何查找GPIO功能

在STM32的数据开发手册进行查看,注意端口为FT标识时,表示可以容忍5V电压,如果是TTA标识,表明只能接受3.3V电压,注意不要接5V,会被烧坏。

二、GPIO结构

(一)GPIO基本结构


bios引脚 短接_bios引脚 短接

I/O端口位的基本结构

注意,IO口无法驱动大功率设备,如电机,需要增加驱动电路

(二)GPIO工作模式

1、输入模式

输入浮空:上下拉开关都不使用

输入上拉:VDD下面的上拉开关

输入下拉:VSS上面的下拉开关

模拟输入

2、输出模式

开漏输出:基本输出,通过P-MOS和N-MOS管控制输出

开漏复用输出:复用模式下的开漏输出

推挽式输出:基本输出,通过P-MOS和N-MOS管控制输出

推挽式复用输出:复用模式下的推挽式输出

3、总结:

(1)推挽输出:a.可以输出高低电平,用于连接数字器件,高电平由VDD决定,低电平由VSS决定;b.推挽结构指两个三极管受两路互补的信号控制,总是在一个导通的时候另外一个截止,优点开关效率效率高,电流大,驱动能力强;c.输出高电平时,电流输出到负载,叫灌电流,可以理解成推,输出低电平时,负载电流流向芯片,叫拉电流,即挽

(2)开漏输出 :a.只能输出低电平,不能输出高电平。如果要输出高电平,则需要外接上拉;b.开漏输出具有“线与”功能,一个为低,全部为低,多用于I2C和SMBUS总线

(三)GPIO初始化步骤

具体寄存器参考STM32Flxx中文参考手册

(1)确定GPIO的工作模式和工作速度(通过配置寄存器GPIOx_CRL和GPIOx_CRH);

(2)具体要输出的内容(置位复位寄存器:BSRR和数据输出寄存器: ODR)
GPIOx_CRL管理低八位引脚,GPIOx_CRH管理高八位引脚,工作速度主要为输出模式,可以配置输出的频率