浮空、开漏、推挽、上拉 / 下拉--单片机 /芯片引脚模式

底层模型

所有数字 IO 口,内部本质就是两个电子开关(MOS 管):

  • 上管 PMOS:一头接 VCC(电源)

  • 下管 NMOS :一头接 GND(地)中间连在一起,就是引脚 Pin

    复制代码
     VCC
      |
    [上开关]
      |

    ----引脚----
    |
    [下开关]
    |
    GND

不同模式,就是这两个开关怎么开、怎么关的区别

不同模式,就是这两个开关怎么开、怎么关的区别。


1. 浮空输入(Floating Input)

两个开关:全部断开

  • 上管:关
  • 下管:关

引脚既不接电源,也不接地,完全悬空。

特点:

  • 引脚是高阻态,几乎不耗电
  • 电平完全由外部电路决定
  • 外部没接线 → 电平乱飘、受干扰
  • 只适合有明确外部信号的输入

一句话:浮空 = 引脚悬空,谁来谁说了算,没人来就发疯。


2. 上拉输入 / 下拉输入

这两个其实是带电阻的浮空,为了防止乱飘。

上拉输入(Pull-up)

内部加一个电阻接到 VCC

  • 外部没信号 → 默认为高电平
  • 外部接 GND → 变低

下拉输入(Pull-down)

内部加一个电阻接到 GND

  • 外部没信号 → 默认为低电平
  • 外部接 VCC → 变高

用途:按键、拨码开关,防止引脚乱跳。


3. 推挽输出(Push-Pull)

最标准、最常用的输出模式

两个开关互斥工作:

  • 输出高电平 → 上管开,下管关 → 直接接 VCC
  • 输出低电平 → 下管开,上管关 → 直接接 GND

特点:

  • 能主动输出强高、强低
  • 驱动能力强
  • 不能多个芯片输出接同一条线(会短路打架)

一句话:推挽 = 既能强拉到高,也能强拉到低,力气大。


4. 开漏输出(Open-Drain)

只留下管,拆掉上管

  • 输出 0 → 下管开 → 强拉低
  • 输出 1 → 下管关 → 引脚浮空

它自己出不来高电平,必须靠:

  • 外部加上拉电阻到 VCC
  • 电阻把线 "拽" 到高电平

特点:

  • 只能拉低,不能拉高
  • 多个开漏可以接同一条线(线与逻辑)
  • 方便做电平转换(3.3V ↔ 5V)

典型应用:I2C、OneWire、通信总线

一句话:开漏 = 只会往下拉,高电平靠外部电阻帮忙。


5. 开漏带上拉(Open-Drain + Pull-up)

有些单片机支持开漏 + 内部上拉相当于:

  • 开漏输出
  • 内部自带小电阻,不用外部接

适合简单低速通信。


6. 模拟输入(Analog Input)

彻底关闭所有数字电路,只给 ADC 采样。

  • 高阻
  • 不识别高低电平,只测电压

一张表彻底看懂

模式 上管 下管 能主动出高? 能主动出低? 典型用途
浮空输入 关 关 否 否 外部强驱动信号
上拉输入 关 + 电阻 关 否 否 按键
下拉输入 关 关 + 电阻 否 否 按键
推挽输出 可控 可控 是 是 LED、继电器、普通输出
开漏输出 关 可控 否(靠外部电阻) 是 I2C、多设备共总线

最关键的三句总结

  1. 推挽:既能拉高也能拉低,力气大,不能共线
  2. 开漏:只能拉低,高靠电阻,适合多设备共用一根线
  3. 浮空:啥都不接,外部说了算,容易乱飘
相关推荐
Zwawa6 小时前
C语言函数指针与宏实战:从回调、表驱动菜单到X-Macro,讲透嵌入式代码解耦
c语言·单片机·嵌入式
shimly1234567 小时前
(done) 嵌入式硬件电路图 (2) 熟悉常用元器件
嵌入式硬件
安妮细水长流12 小时前
ad7124
c语言·单片机
花月mmc15 小时前
【FPGA】神经网络内容简介预告
嵌入式硬件·深度学习·神经网络·fpga开发
en.en..15 小时前
STM32 HAL 库 | 核心知识点整理
单片机·嵌入式硬件
无敌贵点大王15 小时前
从寄存器层面重学STM32(9)——DMA理论
stm32·单片机·嵌入式硬件
希和202716 小时前
51 单片机入门笔记:江科大课程代码逐行讲解(按键控制 LED 流水灯)
笔记·单片机·mongodb
希和202716 小时前
51 单片机按键控制 LED:江科大课程代码小白笔记
笔记·单片机·嵌入式硬件
希和202716 小时前
51 单片机 LED 流水灯:从直接法到循环法(江科大课程笔记)
笔记·单片机·mongodb
Zwawa1 天前
用两个按键做一个OLED菜单:先把选择和执行分开
c语言·单片机·嵌入式