STM32的GPIO输入输出的八种工作模式
(1)GPIO_Mode_AIN 模拟输入
(2)GPIO_Mode_IN_FLOATING 浮空输入
(3)GPIO_Mode_IPD 下拉输入
(4)GPIO_Mode_IPU 上拉输入
(5)GPIO_Mode_Out_OD 开漏输出
(6)GPIO_Mode_Out_PP 推挽输出
(7)GPIO_Mode_AF_OD 复用开漏输出
(8)GPIO_Mode_AF_PP 复用推挽输出
①模拟输入
输入的是一个模拟量,即具体的电压值,在ADC数模转换中会用到,将模拟量转化为数字量。
②浮空输入
在浮空输入状态下, IO 的电平状态是不确定的,完全由外部输入决定,如果在该引脚悬空的情况下,读取该端口的电平是不确定。CPU通过输入数据寄存器读取IO口状态。
③下拉\上拉输入
将状态不确定的信号线通过一个电阻将其至高电平(上拉)或低电平(下拉),以防止输入信号线因悬空而出现不确定的状态,继而导致系统出现不期望的状态。
在不同应用场合中会对电阻的阻值要求有所不同。根据STM32数据手册,上拉电阻大小一般为30–50K。CPU通过输入数据寄存器读取IO口状态为高电平或者是低电平。
④开漏输出
只能输出低电平,不能输出高电平。如果要输出高电平,则需要外接上拉。开漏输出具有“线与”功能,一个为低,全部为低,多用于I2C和SMBUS总线。
⑤推挽输出
可以输出高低电平,驱动能力强,用于连接数字器件,高电平由VDD决定,低电平由VSS决定。
⑥复用开漏输出
片内外设功能(TX1,MOSI,MISO.SCK.SS)
⑦复用推挽输出
片内外设功能(I2C SCL,SDA)