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.pswp.cn/pingmian/95165.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/95165.shtml
英文地址,请注明出处:http://en.pswp.cn/pingmian/95165.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode算法日记 - Day 29: 重排链表、合并 K 个升序链表

目录 1. 重排链表 1.1 题目解析 1.2 解法 1.3 代码实现 2. 合并 K 个升序链表 2.1 题目解析 2.2 解法 2.3 代码实现 1. 重排链表 143. 重排链表 - 力扣(LeetCode) 给定一个单链表 L 的头节点 head ,单链表 L 表示为: L…

算法模板(Java版)_前缀和与差分

ZZHow(ZZHow1024) 💡 差分是前缀和的逆运算。 前缀和 💡 前缀和作用:快速求出 [l, r] 区间的和。 一维前缀和 例题:AcWing 795. 前缀和 import java.util.Scanner;public class Main {public static void main(String[] args)…

openssl使用SM2进行数据加密和数据解密

一、准备工作 1. 安装依赖 sudo apt-get update sudo apt-get install libssl-dev2. 确认 OpenSSL 版本 openssl version如果是 1.1.1 或 3.0,就支持 SM2/SM3/SM4。二、C 语言示例代码 这个程序会: 生成 SM2 密钥对使用公钥加密一段明文使用私钥解密恢复…

用滑动窗口与线性回归将音频信号转换为“Token”序列:一种简单的音频特征编码方法

在深度学习和语音处理领域,如何将原始音频信号有效地表示为离散的“Token”序列,是语音识别、音频生成等任务中的关键问题。常见的方法如Mel频谱图向量量化(VQ)、wav2vec等已经非常成熟,但这些模型通常依赖复杂的神经网…

Vue开发准备

vs code VSCode的下载地址https://code.visualstudio.com/Download Node.js node.js的下载地址 https://nodejs.org/zh-cn/download 注意:nodejs安装路径不要和vscode安装到同一个文件夹,两个应用分别装到两个不同的文件夹 npm config set cache &q…

QT6(QFileSystemModel和QTreeView)

QT6QFileSystemModel和QTreeView QFileSystemModel为本机的文件系统提供一个模型,QFileSystemModelt和QTreeView结合使用,可以用目录树的形式显示本机的文件系统,如同Windows的资源管理器一样使用QFileSystemModel提供的接口函数,…

【开题答辩全过程】以 基于Spring Boot的房屋租赁系统的设计与实现为例,包含答辩的问题和答案

个人简介一名14年经验的资深毕设内行人,语言擅长Java、php、微信小程序、Python、Golang、安卓Android等开发项目包括大数据、深度学习、网站、小程序、安卓、算法。平常会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。感谢大家的…

构建下一代智能金融基础设施

1. 行业背景:从数字支付到可编程金融的范式跃迁全球数字支付市场正以万亿美元的规模持续扩张,但其底层系统仍受限于传统金融的清算、结算延迟和高昂的中间成本。尽管互联网技术提升了支付的便捷性,但其核心仍是中心化账户体系的延伸。Web3 技…

【C++】深入解析C++嵌套依赖类型与typename关键字

什么是嵌套依赖类型?嵌套依赖类型(Nested Dependent Type)是指在一个模板中,一个类型名称依赖于模板参数,并且是该模板参数内部的嵌套类型。具体来说,当一个类型满足以下两个条件时,它就是嵌套依…

管网信息化监测主要的内容

管网信息化监测是指通过现代信息技术手段对管网系统进行实时监控和数据采集的管理方式。其背景源于城市化进程加快以及基础设施建设规模不断扩大,传统的管网管理模式已无法满足现代化需求。管网信息化监测主要内容包括以下几个方面:█管网运行状态监测&a…

数据泄露代价千万,PII 保护你真的做对了吗?

一、PII—数据隐私的核心概念解析 在大多数数据隐私法律中,可识别个人信息(PII, Personally Identifiable Information)是指任何可以用来识别个人身份的信息。然而,PII 的定义并非由单一法律统一规定,不同国家和地区的法律对其定义略有差异: 各国对 PII 的定义 美国 20…

【数据结构】八大排序之快速排序:分而治之的艺术

文章目录快速排序1.hoare版本算法优化三数取中法小区间优化完整代码如下算法分析时间复杂度空间复杂度2.前后指针法排序过程3.非递归(栈模拟)实现思路总结快速排序 快速排序是Hoare于1962年提出的一种二叉树结构的交换排序方法,其基本思想为…

在ROS中获取并发布UBS式传感器的温湿度

哈喽大家好,我是钢板兽! 今天更新一篇和ROS相关的文章,有个项目需求是在ROS中获取并发布UBS式传感器的温湿度,我使用的温湿度传感器简介如下:DL11- MC-S1 温湿度传感器通过USB 接口采用标准MODBUS RTU 协议通信&#x…

【图论】 Graph.jl 操作汇总

文章目录图论的集合类操作Base.getindexBase.intersectBase.joinBase.reverseBase.reverse!Base.sizeBase.sumBase.sumBase.union图生成与转换Graphs.cartesian_productGraphs.complementGraphs.compute_shiftsGraphs.crosspathGraphs.differenceGraphs.egonetGraphs.induced_s…

【链表 - LeetCode】146. LRU 缓存

146. LRU 缓存 题解&#xff1a; class LRUCache {list<pair<int,int>>v;unordered_map<int,list<pair<int,int>>::iterator>idx;int capacity; public:LRUCache(int capacity):capacity(capacity){}int get(int key) {if(idx.count(key) 0) …

Elasticsearch vs Solr vs OpenSearch:搜索引擎方案对比与索引设计最佳实践

Elasticsearch vs Solr vs OpenSearch&#xff1a;搜索引擎方案对比与索引设计最佳实践 随着大数据和实时分析需求的爆发&#xff0c;搜索引擎已成为许多业务系统中的核心组件。本篇文章将从“技术方案对比分析型”角度切入&#xff0c;重点比较三大主流搜索引擎&#xff1a;El…

光颉科技)Viking)的CS25FTFR009 1225 0.009R/9mR 3W电阻介绍-华年商城

“**华年商城”**小编为您介绍&#xff1a;光颉科技&#xff08;Viking&#xff09;的CS25FTFR009 1225 0.009R/9mR 3W电阻 光颉CS25FTFR009合金电阻&#xff1a;0.009Ω/9mΩ 3W 1%精密采样电阻 光颉科技&#xff08;Viking&#xff09;的CS25FTFR009是一款高性能的电流检测电…

港科大开放世界长时域具身导航!LOVON:足式机器人开放词汇目标导航

作者&#xff1a;Daojie Peng1^{1}1, Jiahang Cao1,2^{1,2}1,2, Qiang Zhang1,2^{1,2}1,2, Jun Ma1,3^{1,3}1,3单位&#xff1a;1^{1}1香港科技大学&#xff08;广州&#xff09;&#xff0c;2^{2}2北京人形机器人创新中心&#xff0c;3^{3}3香港科技大学论文标题&#xff1a;L…

【前端教程】JavaScript 数组对象遍历与数据展示实战

在前端开发中&#xff0c;处理数组和对象是日常工作的基础。无论是篇文章将通过一个具体案例&#xff0c;详细讲解如何使用JavaScript遍历包含对象的数组&#xff0c;并将数据以清晰的格式展示在页面上。我们会从基础语法开始&#xff0c;逐步优化代码&#xff0c;最终实现一个…

无重复字符的最长子串,leetCode热题100,C++实现

题目来源&#xff1a;leetCode 3. 无重复字符的最长子串 - 力扣&#xff08;LeetCode&#xff09; 给定一个字符串 s &#xff0c;请你找出其中不含有重复字符的 最长 子串 的长度。 解法 class Solution { public:int lengthOfLongestSubstring(string s) {unordered_set<…