一、什么是GPIO
GPIO(General purpose intput output)是通用输入输出端口的简称,可以通过软件来控制其输入和输出。STM32芯片的GPIO引脚与外部设备连接起来,从而实现与外部通讯、控制以及数据采集的功能。
二、STM32引脚分类
电源管脚、晶振管脚、复位管脚、下载管脚、BOOT管脚、GPIO管脚。
三、GPIO基本结构
1. 输出控制电路:
推挽模式:若输出控制为高电平,则P-MOS导通,N-MOS截止,I/O端口输出高电平。若输出控制为低电平,则P-MOS截止,N-MOS导通,I/O端口输出低电平。
开漏模式:无论输出控制为什么,P-MOS均为截止,若输出控制为低电平,则N-MOS导通,I/O端口输出高电平。此时若想让I/O端口输出高电平,则必须在II/O端口外接一个上拉电阻,输出的电平高低取决于上拉电阻。(类似于C51的P0)
2. 输出数据寄存器(GPIOx_ODR)
3. TTL施密特触发器:可将一些模拟信号最终转化为数字信号。
4.复用功能输出的信号来自片上外设的数据。
四、GPOI工作模式
1、输入模式:
输入浮空
输入上拉
输入下拉
模拟输入
2、输出模式:开漏输出、开漏复用功能、推挽式输出、推挽式复用功能
五、总结
1、推挽输出
a. 可以输出高低电平,用于连接数字器件,高电平由VDD决定,低电平由VSS决定。
b. 推挽结构指两个三极管受到两路互补的信号控制,总是在一个导通时另一个截止,有点开关效率高,电流大,驱动能力强。
c. 输出高电平时,电流输出到负载,叫灌电流,可以理解成推,输出低电平时,负载电流流向芯片,叫拉电流,即挽。
2、开漏输出
a. 只能输出低电平,不能输出高电平。如果要输出高电平,则需要外接上拉。
b. 开漏输出具有“线与”功能,一个为低,全部为低。