1:输出配置
STM32 GPIO输出有四种配置:开漏输出\推挽输出\复用开漏\复用推挽
1:开漏输出:
输出端相当于三极管的集电极。要得到高电平状态需要上拉电阻才行,适合于做电流型的驱动,其吸收电流的能力相对强(一般20mA以内)
2:推挽输出:
可以输出高,低电平,连接数字器件;推挽结构一般是指两个三极管分别受两互补信号的控制,总是在一个三极管导通的时候另一个截止。高低电平由IC的电源低定。
3:复用输出:
可以理解为GPIO口被用作第二功能时的配置情况(即并非作为通用IO口使用)。端口必须配制成复用功能输出模式(推挽或开漏)
开漏输出:

推挽输出:

AF输出:

2:输入配置
STM32 GPIO输入有四种配置:模拟输入\浮空输入\拉高输入\拉低输入
1:上拉输入:
上拉就是把电位拉高,比如拉到Vcc。上拉就是将不确定的信号通过一个电阻嵌位在高电平!电阻同时起限流作用!强弱只是上拉电阻的阻值不同,没有什么严格区分。
2:下拉输入:
就是把电压拉低,拉到GND。与上拉原理相似。
3:浮空输入:
浮空(floating)就是逻辑器件的输入引脚即不接高电平,也不接低电平。由于逻辑器件的内部结构,当它输入引脚悬空时,相当于该引脚接了高电平。一般实际运用时,引脚不建议悬空,易受干扰。通俗讲就是让管脚什么都不接,浮空着。
4:模拟输入:
内部不接上下拉,跟浮空输入类似
浮空输入:
上拉输入:
下拉输入:

模拟输入:

3:开漏和推挽
关于开漏输出和推挽输出的区别,可以看下面这个文章