(一)GPIO
1.GPIO
通用输入输出端口的简称。
2.STM32的引脚分类
-
电源管脚(VDD\VSS\VREF)
-
晶振管脚(PH0\PH1)
-
复位管脚(NRST)
-
下载管脚
-
BOOT管脚(下载模式切换,boot0、boot1)
-
GPIO管脚
STM32F407ZGT6数据手册中P44查看管脚功能
3.GPIO的基本结构
3.1.推挽和开漏
(1)推挽输出
输出控制为1或0时分别使P-MOS和N-MOS切换导通和关闭的状态,从而实现GPIO输出高低电平(3.3V和0V)的功能。
(2)开漏输出
P-MOS在开漏状态下不工作,当输出控制为0时,N-MOS导通,GPIO输出低电平;当输出控制为1时,N-MOS关断,GPIO无电平、并处于高阻态。
若在此状态下使GPIO输出高电平,则需要引入外部上拉电阻(10KΩ)或使用内部上拉电阻,但此时输出能力较弱。
3.2.工作模式总结
(1)输入模式
-
输入浮空:既不上拉也不下拉
-
输入上拉:上拉开关闭合
-
输入下拉:下拉开关闭合
-
模拟输入
输入信号以高电平形式输入时,选用输入下拉;输入信号以低电平模式输入时,选用输入上拉;输入信号将改变引脚的高低电平情况、在即使切断信号后扔保持不变时,选用浮空输入。
(2)输出模式
-
开漏输出
- 只能输出低电平,不能输出高电平。如果要输出高电平,则需要外接上拉。
- 开漏输出具有“线与”功能,一个为低,全部为低,多用于I2C和SMBUS总线。
-
开漏复用功能
-
推挽式输出
- 可以输出高低电平,用于连接数字器件,高电平由VDD决定,低电平由VSS决定。
- 推挽结构指两个三极管受两路互补的信号控制,总是在一个导通的时候另外一个截止,优点开关效率效率高,电流大,驱动能力强。
- 输出高电平时,电流输出到负载,叫灌电流,可以理解成推,输出低电平时,负载电流流向芯片,叫拉电流,即挽。
-
推挽式复用功能
3.3.GPIO初始化步骤
具体寄存器参考STM32F4中文参考手册
-
确定GPIO是输入、通用输出、复用功能还是模拟输入(模式寄存器:MODER)
-
如果输出还要确定是推挽输出还是开漏输出(输出类型寄存器 :OTYPER)
-
配置输出的速度(输出速度寄存器:OSPEEDR)
-
输出的时候内部的上/下拉电阻要不要开启(上拉/下拉寄存器:PUPDR)
-
具体要输出的内容(置位复位寄存器:BSRR和数据输出寄存器:ODR)