1.输入输出模式
1.1输入模式
GPIO_Mode_AIN /* 模拟输入模式 */
GPIO_Mode_IN_FLOATING /* 浮空输入模式 */
GPIO_Mode_IPD /* 下拉输入模式 */
GPIO_Mode_IPU /* 上拉输入模式 */
GPIO_Mode_AIN (Analog Input) :模拟输入模式
模拟输入模式
在该模式下,引脚被连接到ADC(模数转换器),用于读取电压值,常用于采集传感器信号,也就是读取模拟信号。
GPIO_Mode_IN_FLOATING (Floating Input):浮空输入模式
浮空输入模式
在这种模式下,GPIO引脚被配置为输入,但不连接内部上拉或下拉电阻。这可能导致不确定的状态,除非外部电路将其强制为高电平或低电平。适用于需要检测外部电路是否连接的场景,其他场景一般不推荐使用这个模式。
GPIO_Mode_IPD (Input Pull-Down) :下拉输入模式
下拉输入模式
GPIO作为输入,并且内部下拉电阻被激活。如果外部没有连接器件或信号为高阻态,引脚将被拉低至GND,确保有一个确定的低电平状态。
GPIO_Mode_IPU (Input Pull-Up):上拉输入模式。
上拉输入模式
此模式下内部上拉电阻被激活,当外部无信号或为高阻时,引脚会被拉高至VCC,确保有一个确定的高电平状态。
高阻:高阻态这是一个数字电路里常见的术语,指的是电路的一种输出状态,既不是高电平也不是低电平。 把一个端口置为高阻态,相当于该端口从电路中断开(仅对输出来说),比如在一个通信线上挂了几个端口,将一个端口置为高阻态,就意味着该端口不会影响到该通信线的电平变化,但还是可以读取端口的电平。 一般高阻态都是作为模拟量输入的,因为高阻态不会影响到输入的电平,可以准确的读取模拟量。 高阻态只有电容效应,没有电阻效应;阻抗很高很高,相当于断开。
悬空/浮空和高阻态的区别 : 悬空/浮空:就是逻辑器件的输入引脚即不接高电平,也不接低电平。一般实际运用时,引脚不建议悬空,易受干扰。 高阻态:从逻辑器件内部电路结构来说,就是其输出电阻很大,该状态即不是高电平,也不是低电平。
1.2输出模式
GPIO_Mode_Out_OD /* 开漏输出模式 */
GPIO_Mode_Out_PP /* 推挽输出模式 */
GPIO_Mode_AF_OD /* 复用开漏输出模式 */
GPIO_Mode_AF_PP /* 复用推挽输出模式 */
GPIO_Mode_Out_OD (Output Open Drain) :开漏输出模式
开漏输出模式
在该情况下,GPIO不能主动驱动高电平,只能拉低电平或保持高阻态。 在输出低电平时,引脚被拉低;而在输出高电平时,引脚呈高阻状态。这允许多个开漏输出引脚通过外部上拉电阻连接来实现线与逻辑(Wire-AND)。常用于I²C、UART等需要共享总线的通信协议。
GPIO_Mode_Out_PP (Output Push-Pull) :推挽输出模式
推挽输出模式
这是最常见的输出模式,既能输出高电平也能输出低电平。推挽结构能提供强驱动能力,适合直接驱动负载和传递数字信号。
GPIO_Mode_AF_OD (Alternate Function Open Drain) :复用开漏输出模式
复用开漏输出模式
类似于Out_OD,当GPIO被配置为某个外设的复用功能(如SPI、I²C)时,GPIO引脚被配置为特定外设的开漏输出,通常需要配合外部上拉电阻。
GPIO_Mode_AF_PP (Alternate Function Push-Pull) :复用推挽输出模式
复用推挽输出模式
与AF_OD类似,但使用推挽输出,能够直接驱动负载而不需外部上拉,适用于需要更强驱动能力的复用功能场景。
2.结束语
以上就是对STM32的输入输出的一个总结。
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/m0_52470001/article/details/141035560
|