STM32 GPIO 8种引脚工作模式配置详细解释【完整指南】
STM32中的GPIO是微控制器中非常灵活的一部分,可以被配置为输入或输出,以及不同的输入输出特性。
那么接下来就让我们一起来学习一下都有哪些输入输出模式及其作用吧~~
1.GPIO_Mode_AIN (Analog Input) :
-
这种模式将GPIO引脚配置为模拟输入。在该模式下,引脚被连接到ADC(模数转换器),用于读取电压值,常用于采集传感器信号,也就是读取模拟信号。
2.GPIO_Mode_IN_FLOATING (Floating Input):
-
浮空输入模式。在这种模式下,GPIO引脚被配置为输入,但不连接内部上拉或下拉电阻。这可能导致不确定的状态,除非外部电路将其强制为高电平或低电平。适用于需要检测外部电路是否连接的场景,其他场景一般不推荐使用这个模式。
3.GPIO_Mode_IPD (Input Pull-Down) :
-
输入下拉模式。GPIO作为输入,并且内部下拉电阻被激活。如果外部没有连接或信号为高阻态,引脚将被拉低至GND,确保有一个确定的低电平状态。
4.GPIO_Mode_IPU (Input Pull-Up):
-
输入上拉模式。与IPD相反,此模式下内部上拉电阻被激活,当外部无信号或为高阻时,引脚会被拉高至VCC,确保有一个确定的高电平状态。
-
高阻:高阻态这是一个数字电路里常见的术语,指的是电路的一种输出状态,既不是高电平也不是低电平。 把一个端口置为高阻态,相当于该端口从电路中断开(仅对输出来说),比如在一个通信线上挂了几个端口,将一个端口置为高阻态,就意味着该端口不会影响到该通信线的电平变化,但还是可以读取端口的电平。 一般高阻态都是作为模拟量输入的,因为高阻态不会影响到输入的电平,可以准确的读取模拟量。 高阻态只有电容效应,没有电阻效应;阻抗很高很高,相当于断开。
-
悬空/浮空和高阻态的区别 : 悬空/浮空:就是逻辑器件的输入引脚即不接高电平,也不接低电平。一般实际运用时,引脚不建议悬空,易受干扰。 高阻态:从逻辑器件内部电路结构来说,就是其输出电阻很大,该状态即不是高电平,也不是低电平。
5.GPIO_Mode_Out_OD (Output Open Drain) :
1.开漏输出模式。在该情况下,GPIO不能主动驱动高电平,只能拉低电平或保持高阻态。 在输出低电平时,引脚被拉低;而在输出高电平时,引脚呈高阻状态。这允许多个开漏输出引脚通过外部上拉电阻连接来实现线与逻辑(Wire-AND)。常用于I²C、UART等需要共享总线的通信协议。
6.GPIO_Mode_Out_PP (Output Push-Pull) :
-
推挽输出模式。这是最常见的输出模式,既能输出高电平也能输出低电平。推挽结构能提供强驱动能力,适合直接驱动负载和传递数字信号。
7.GPIO_Mode_AF_OD (Alternate Function Open Drain) :
-
复用功能开漏输出模式。类似于Out_OD,当GPIO被配置为某个外设的复用功能(如SPI、I²C)时,GPIO引脚被配置为特定外设的开漏输出,通常需要配合外部上拉电阻。
8.GPIO_Mode_AF_PP (Alternate Function Push-Pull) :
-
复用功能推挽输出模式。与AF_OD类似,但使用推挽输出,能够直接驱动负载而不需外部上拉,适用于需要更强驱动能力的复用功能场景。
9.表格总结
模式名称 |
性质 |
特征 |
浮空输入 |
数字输入 |
可读取引脚电平,若引脚悬空,则电平不确定 |
上拉输入 |
数字输入 |
可读取引脚电平,内部连接上拉电阻,悬空时默认高电平 |
下拉输入 |
数字输入 |
可读取引脚电平,内部连接下拉电阻,悬空时默认低电平 |
模拟输入 |
模拟输入 |
GPIO无效,引脚直接接入内部ADC |
开漏输出 |
数字输出 |
可输出引脚电平,高电平为高阻态,低电平接VSS |
推挽输出 |
数字输出 |
可输出引脚电平,高电平接VDD,低电平接VSS |
复用开漏输出 |
数字输出 |
由片上外设控制,高电平为高阻态,低电平接VSS |
复用推挽输出 |
数字输出 |
由片上外设控制,高电平接VDD,低电平接VSS |
作者:森森..