当前位置: 首页 > news >正文

GPIO的8种工作方式

GPIO的8种工作方式:一、4 种输入模式1.1  Floating Input  浮空输入1.2  Pull-up Input  上拉输入1.3  Pull-down Input  下拉输入1.4  Analog Input  模拟输入二、4种输出模式2.1  General Push-Pull Output  推挽输出2.2  General Open-Drain Output  开漏输出2.3  Alternate General Push-Pull Output  复用推挽输出2.4  Alternate General Open-Drain Output  复用开漏输出

4种输入模式原理及特点


1. 浮空输入(Floating Input)
电路原理:引脚内部既不接上拉电阻(到 VDD),也不接下拉电阻(到 GND),直接连接到施密特触发器(数字信号整形电路)。
核心特点:外部信号直接决定引脚电平,无外部信号时,引脚电平随空间电磁干扰波动(“浮空” 即 “悬浮不定”)。
信号路径:外部信号 → 施密特触发器 → 内部数字电路(如寄存器)。
例:外部接按键且已串联上拉电阻时,无需内部电阻,用浮空输入检测按键状态。2. 上拉输入(Pull-up Input)
电路原理:引脚内部通过开关接入上拉电阻(电阻值通常为 30-50kΩ,连接到 VDD),同时连接施密特触发器。
核心特点:无外部信号时,上拉电阻将引脚 “拉到高电平”(接近 VDD);外部输入低电平时(如接地),引脚被拉低。
关键作用:通过内部电阻消除 “悬空状态”,确保无外部信号时电平稳定。
例:按键一端接引脚,另一端接地,用上拉输入时,按键未按则引脚为高电平,按下为低电平。3. 下拉输入(Pull-down Input)
电路原理:与上拉输入对称,内部接入下拉电阻(连接到 GND),同时连接施密特触发器。
核心特点:无外部信号时,下拉电阻将引脚 “拉到低电平”;外部输入高电平时,引脚被拉高。
适用场景:外部信号为高电平有效(如传感器输出高电平触发中断),避免无信号时电平波动。4. 模拟输入(Analog Input)
电路原理:引脚直接连接到 ADC(模数转换器)的模拟信号通道,断开所有内部上拉 / 下拉电阻和施密特触发器(数字电路被隔离)。
核心特点:保留外部信号的 “连续电压特性”(而非转为 0/1 数字信号),确保 ADC 能采样到真实的模拟电压(如 0-3.3V 的渐变信号)。
例:连接光敏电阻(输出随光照变化的电压),用模拟输入让 ADC 读取光照强度。

4种输出模式原理及特点

5. 推挽输出(General Push-Pull Output)
电路原理:输出级由两个互补晶体管(NPN 和 PNP)组成:
输出高电平时,NPN 管截止,PNP 管导通,引脚通过 PNP 管连接到 VDD(输出高电平≈VDD);
输出低电平时,PNP 管截止,NPN 管导通,引脚通过 NPN 管连接到 GND(输出低电平≈0V)。
核心特点:能主动输出高 / 低电平,驱动能力强(拉电流和灌电流较大,通常可达 20mA),无需外部电阻。
例:直接驱动 LED(高电平点亮时,PNP 管提供拉电流;低电平点亮时,NPN 管提供灌电流)。6. 开漏输出(General Open-Drain Output)
电路原理:输出级只有 NPN 晶体管,PNP 晶体管被移除:
输出低电平时,NPN 管导通,引脚接地(低电平≈0V);
输出高电平时,NPN 管截止,引脚处于 “高阻态”(相当于断开),需通过外部上拉电阻连接到 VDD 才能输出高电平。
核心特点:不能主动输出高电平(依赖外部电阻),但支持 “线与” 功能(多个开漏输出引脚接同一总线,任一输出低电平则总线为低)。
例:I2C 总线的 SDA/SCL 线,多个设备通过开漏输出共享总线,避免信号冲突。7. 复用推挽输出(Alternate Function Push-Pull)
电路原理:输出级结构与 “推挽输出” 相同(互补晶体管),但控制信号来源从 “GPIO 控制器” 切换到 “片上外设”(如定时器、SPI、UART 等)。
核心特点:引脚功能被 “复用” 给外设,由外设直接驱动推挽输出级,兼顾外设功能和强驱动能力。
例:定时器的 PWM 输出引脚配置为复用推挽,由定时器直接控制高低电平切换,驱动电机调速。8. 复用开漏输出(Alternate Function Open-Drain)
电路原理:输出级结构与 “开漏输出” 相同(仅 NPN 晶体管),但控制信号来自片上外设,而非 GPIO 控制器。
核心特点:外设通过开漏结构输出信号,需外部上拉电阻,适合需要线与或电平转换的外设场景。
例:I2C 外设的引脚配置为复用开漏,由 I2C 控制器控制输出,通过外部上拉电阻实现多设备通信。

http://www.dtcms.com/a/364208.html

相关文章:

  • 安装wsl报错0x800701bc
  • OCR识别在媒资管理系统的应用场景剖析与选择
  • 今天我们继续学习shell编程语言的内容
  • 数据结构之单链表的应用(一)
  • 【游戏开发】街景风格化运用到游戏中,一般有哪些风格可供选择?
  • ThreadLocal深度解析:线程本地存储的奥秘
  • 【模型学习】LoRA的原理,及deepseek-vl2下LoRA实现
  • 【渗透测试】使用 UV 简化 Python 工具和脚本管理
  • TypeScript:unknown 类型
  • 博维智航(彭州)——面试
  • C++高频误区:vector对象到底在堆上还是栈上?
  • flume扩展实战:自定义拦截器、Source 与 Sink 全指南
  • 博主必备神器~
  • 解锁复杂工作流:Roo Code 中的「Boomerang Tasks」机制 : Orchestrator Mode 的使用
  • 用好AI,从提示词工程到上下文工程
  • ARM - GPIO 标准库开发
  • 算法模板(Java版)_非负整数的高精度运算
  • Linux之Shell编程(五)命令工具与sed编辑
  • Java代码耗时统计的5种方法
  • 将 .vcproj 文件转换为 .pro 文件
  • Apache Doris:重塑湖仓一体架构的高效计算引擎
  • 常见机械机构的图graph表示
  • 【硬件测试】基于FPGA的16PSK+卷积编码Viterbi译码硬件片内测试,包含帧同步,信道,误码统计,可设置SNR
  • 新手也能懂的 MySQL 大表优化:40 字段表的规划思路 + 头表行表应用详解
  • Java8特性
  • MyBatis-Plus 实现用户分页查询(支持复杂条件)
  • TNNLS-2025《Metric Learning-Based Subspace Clustering》
  • 实训云上搭建分布式Hadoop集群[2025] 实战笔记
  • 图像编码--监控摄像机QP设置大小?
  • 构建可扩展的 AI 应用:LangChain 与 MCP 服务的集成模式