推挽输出、开漏输出和上拉输入或浮空输入的区别(以一个IO口控制两个LED灯为例)

GPIO输入输出各种模式(推挽、开漏、准双向端口)详解 技术交流是便宜的博客地址:http://blog.youkuaiyun.com/techexchangeischeap 概述 能将处理器的GPIO(General Purpose Input and Output)内部结构和各种模式彻底弄清楚的人并不多,最近在百度上搜索了大量关于这部分的资料,对于其中很多问题的说法并不统一。本文尽可能的将IO涉及到的所有问题罗列出来,对于有明确答案的问题解释清楚,对于还存 阅读详情
AI摘要

本文以STM32为例介绍GPIO特性。先阐述推挽输出与开漏输出区别,推挽可输出高低电平,开漏只能输出低电平、高电平需外接上拉电阻。接着讲解浮空输入和上拉输入模式。最后进行单IO口控制两个LED灯亮灭的实验,分析了电路原理和实现条件。

 在进行1个IO口控制两个LED灯的实验前,先了解一下GPIO的特性(以STM32为例)

一、推挽输出与开漏输出的区别

      1.推挽输出

     推挽输出,顾名思义就是既可以输出高电平,又可以输出低电平。以stm32为例,stm32官方手册的GPIO电路图如下:

 当输出寄存器为1时(高电平),控制输出为1,此时P-MOS管导通,N-MOS管不导通,这时候输出电压就以VDD为基准;

 控制输出为0时,P-MOS不导通,N-MOS管导通,这时候电压就以VSS为基准。

PS:(MOS知识自己去百度学习学习,MOS管是电压驱动型的,和电流驱动型的三极管不一样,如若不清楚,在这里可以将P-MOS管假想为NPN,N-MOS假想为PNP,这样就比较好去理解这个电路)

           VDD ,D==device器件的意思,指的是器件内部的工作电压

           VSS, S==series公共端的意思,通常电路中的公共端接地,即为地端电压

            VCC,C==Circuit电路的意思,指整个供电回路的电压,(接入电路的电压)

            VBAT,BAT==battery电池的意思,一般指电池电压。

注意:从上面电路图来看,输出的同时,也可以通过输入数据寄存器查看端口的电平变化,但是该电平不一定是你当前输出的电平值

 

      2.开漏输出

         开漏输出,即只能输出低电平,输出高电平时需要外接上拉电阻。(在stm32F4中,大部分GPIO口都配置了弱上拉和下拉),但在使用其他芯片的时候,在设计电路的时候就要得注意了。

         从上图可以看出,输出寄存器中的“0”,可以激活N-MOS管,而输出"1"时,P-MOS管不导通,会使端口保持高阻态(PS:高阻态顾名思义就是电阻很大,或者说是趋向无穷大。在上面说的推挽输出中,一个门电路中通过上拉管和下拉管来输出高低电平,如果当上拉管和下拉管都截止时,输出端就相当于浮空(没有电流流动),其电平随外部电平高低而定,即该门电路放弃对输出端电路的控制,这样的话,外接上拉电阻,则输出高电平时,其电平由VCC直接供给)。

         由于内部VDD的电压是要比VCC的电压要低(可能低很多),推挽输出时,其输出高电平电流值是比较小的,而接了上拉电阻的开漏输出高电平时,其输出电流是比较大的,因而开漏输出比较适合用来做大电流控制。

 

    二、输入模式

           stm32中输入模式有四种,即浮空输入、上拉输入、下拉输入、模拟输入,在本文中,只讲解浮空输入和上拉输入这两种模式。

          1.浮空输入

             浮空输入顾名思义就是无上下拉,从下面原理图进行分析

            

             浮空输入时,输入的电压通过TTL施密特触发器转换为0或1的数字电平存入寄存器中。由于该电压是外部提供的,所以会有很多不稳定的因素,那么stm32如何判断该输入电压是高电平还是低电平呢?

下图示从stm32f407的芯片手册中截取到的图,是使用外部时钟源(一般都使用外部时钟源)所测出的值,其判断输入高电平信号的电压为0.7VDD~VDD(差不多是2.1~3.3V),低电平信号输入电压是VSS~0.3VDD(0~~0.9V)。 那么0.3~0.7VDD这一部分输入电压怎么办???顾名思义,这一部分是属于浮空的,即无任何信号产生(所以在写浮空输入的程序时,注意if~else了)

     2. 上拉输入

         上面我们讲到浮空输入中,0.3VDD~0.7VDD这一部分输入电压会被认为是无信号产生,那么在配置成上拉输入模式后(上拉电阻开启),其这一部分被认为无信号的输入电压,就会被拉高到0.7VDD+,这样就会产生一个结果,就是符合低电平的输入电压产生的低电平信号,剩下的电压产生的是高电平信号。(当然要注意电压勿超过设定值导致被击穿)。

 

三、一个IO口控制两个灯的亮灭

      为了加深对上面的理解,下面进行一个小实验,即设计一个电路,只用一个IO口同时控制两个LED(单独亮灭,同时亮灭)

                                    

电路分析:这是一个简单的控制电路,其IO口控制的原理是,RC0输入低电平时,LED6亮,输入高电平时,LED7亮,将RC0配置成输入  模式后(高阻态),两个灯都是灭的状态。给1ms左右(这个值根据不同LED的特性来判断)的高低电平交互,可以达到一个同时亮的效果。(二极管是防止电压过高而被击穿)。

          当然,这样结果的成立条件是该IO能配置成推挽输出模式(或者开漏模式+外接上拉电阻),这样当要单独使LED7亮时,才能有一个高电平输出(如果芯片电流输出能力过弱,建议外接一个上拉电阻,保证LED7的亮度)

 

 

 

 

 

【电子通识】开漏输出和推挽输出有什么差别? GPIO的功能有开漏输出和推挽式输出。那么这两种输出到底有什么差别?在实际项目中我们要根据不同的特性去选择。 阅读详情

相关推荐

学习笔记:关于上拉输入、下拉输入、模拟输入、浮空输入、推挽输出、开漏输出、复用输出的区别

2、一般来说,开漏是用来连接不同电平的器件,匹配电平用的,因为开漏引脚不连接外部的上拉电阻时,只能输出低电平,如果需要同时具备输出高电平的功能,则需要接上拉电阻,很好的一个优点是通过改变上拉电源的电压,便可以改变传输电平。拉高,然后可以读IO的值;3、开漏输出提供了灵活的输出方式,但是也有其弱点,就是带来上升沿的延时。由于浮空输入一般多用于外部按键输入,结合图上的输入部分电路,我理解为浮空输入状态下,IO的电平状态是不确定的,完全由外部输入决定,如果在该引脚悬空的情况下,读取该端口的电平是不确定的。

Liu1013216383的博客 1万+

GPIO推挽输出和开漏输出模式区别详解

以STM32参考手册中的GPIO输出配置图为例: 看到输出驱动器虚线框中的内容,输出驱动器中的P-MOS和N-MOS两个MOS管就是实现推挽输出和开漏输出的关键。推挽输出模式下,P-MOS和N-MOS都正常工作,开漏输出模式下,只有下面的N-MOS工作,上面的P-MOS不工作。 注意:输出模式没有上拉下拉配置。 推挽输出(Push-Pull Output) 推挽输出的结构是由两个三极管或者MOS管受到互补信号的控制,两个管子始终保持一个处于截止,另一个处于导通的状态。电路工作时,两只对称的开关管每次只有一

a只如初见的博客 11万+

推挽输出和开漏输出的区别(包括复用功能)

具体用复用开漏输出还是复用推挽输出,这个就要根据外设需求来设置,例如IIC在使用时需要用到线与特性,就必须在程序里配置IO引脚为复用开漏输出;然而,需要注意的是,推挽模式的驱动能力有限,通常只适合驱动低功率的负载,如LED灯或小型继电器。当输出高电平时,N沟道晶体管导通,P沟道晶体管截止,电路输出接近地线。当晶体管关闭时,输出端是悬空的,需要外部上拉电阻连接到高电平,以确保输出端能够达到高电平状态。通用数字输出:推挽模式适用于通用的数字输出场景,因为它可以输出确定的高低电平而不需要外部电路的辅助。

weixin_48867130的博客 2915

关于上拉输入、下拉输入、推挽输出、开漏输出 的区别

1、上拉电阻:将一个不确定的信号,通过一个电阻与电源VCC相连,固定在高电平。在IO口为输入模式且为上拉电阻时,IO口的常态为高电平。 2、下拉电阻:将一个不确定的信号,通过一个电阻与地GND相连,固定在低电平。在IO口为输入模式且为下拉电阻时,IO口的常态为低电平。 3、推挽输出:可以输出高、低电平,连接数字器件。推挽结果一般是指两个三极管分别受两互补信号的控制,总是在一个三极管导通时令一个...

人类简史 1万+

强网杯Web题ezphp解题全记录:利用PHP反序列化与条件竞争拿下服务器

本文详细解析了强网杯Web题目ezphp的解题过程,通过PHP反序列化与条件竞争漏洞的组合利用,成功获取服务器权限。文章深入剖析了反序列化链的构造、文件上传绕过技巧以及条件竞争的实际应用,为CTF选手和Web安全研究者提供了宝贵的实战经验。

weixin_29006187的博客 382

STM32CubMX_MQ135检测空气质量

一、MQ135简介 MQ135是测量空气污染情况常用的一个传感器,具有代表性,价格低,寿命长,敏感度也OK,主要用于测量空气中二氧化碳,氮氧化物,氨气,酒精,苯类等。这几样气体可以说都属于家用空气污染测定中的重要成份,因此用这个传感器刚刚好。 MQ135气体传感器所使用的气敏材料是在清洁空气中电导率较低的二氧化锡(SnO2)。当传感器所处环境中存在污染气体时,传感器的电导率随空气中污染气体浓度的增加而增大。使用简单的电路即可将电导率的变化转换为与该气体浓度相对应的输出信号。 注: pm2.5的话要用另外类型

W_Oilpicture的博客 3万+

GPIO八种IO端口输入输出模式解析

参考了一些网上的文章和视频,总结如下: 1. 先看下STM32的八种IO口模式 1) GPIO_Mode_AIN 模拟输入; 2) GPIO_Mode_IN_FLOATING 浮空输入; 3) GPIO_Mode_IPD 下拉输入; 4) GPIO_Mode_IPU 上拉输入; 5) GPIO_Mode_Out_OD 开漏输出; 6) GPIO_Mode_Out_PP 推挽输出; 7) GPIO_Mode_AF_OD 复用开漏输出; 8) GPIO_Mode_AF_PP 复用推挽输出。 2. 模拟

Leisure_ksj的博客 1万+

液晶电视维修必看:TCON逻辑板故障排查全指南(附常见问题解决方案)

本文详细解析了液晶电视TCON逻辑板的工作原理与故障排查方法,涵盖LVDS信号处理、DC-DC电压系统等核心知识。提供从基础测量到高级维修的完整指南,帮助技术人员快速诊断黑屏、竖线等常见故障,并给出预防性维护建议,提升维修效率与成功率。

weixin_42535461的博客 616

【51/STM32】详解单片机GPIO口输入输出的各种模式

通用型输入输出端口,简称GPIO口,是单片机与其他外围设备和电路进行信息交换和控制的桥梁。本文从复习模电中所学的场效应管开始,逐步引出开漏输出与推挽输出的概念及阐述其原理,并结合点亮一盏LED灯的实例进一步探讨IO口的输出模式;随后介绍单片机的输入电路;在此基础上,结合IO口输入与输出模式的性质介绍标准双向IO口和准双向IO口的特点;最后分别对51单片机和STM32单片机的IO口结构进行讲解,其中重点对STM32单片机的GPIO寄存器和工作原理进行介绍。

土小豆的博客 2万+

从部署到养成:Hermes智能体接入DeepSeek与微信机器人的完整实战指南

智能体(Agent)正成为大模型从“对话”走向“行动”的关键形态。它通过拆解指令、调用工具、执行任务,让AI真正参与工作流。Hermes作为可本地部署的开源智能体框架,支持接入DeepSeek等主流大模型,并提供网关、工具调用、记忆管理等模块化能力。从Docker容器部署到微信机器人桥接,从自动化定时任务到Computer Use桌面控制,Hermes将个人助理从概念落地为可运行的工程系统。本文基于真实实践,梳理架构原理、部署流程、API配置与高频故障排查,为技术玩家提供一套从零到一的上手指南。

weixin_29045001的博客 263

什么是三极管推挽电路

当没有信号输入时,电源通过PNP三极管EB间的二极管,然后通过NPN三极管BE间而二极管到地,这时这两个三极管都是导通的,三极管很容易由于电流过大而损坏。当输入信号为VCC时,上面的三极管导通,下面的三极管截止,输出信号为VCC-0.7V,这个0.7V就是上面NPN三极管BE间的导通压降。比如上面的三极管导通,那么输出电压就是输入电压减去0.7V,所以下面的PNP三极管由于基极电压大于发射极电压,是不会导通的。这是一个三极管推挽电路,上面是一个NPN的三极管,下面是一个PNP的三极管。

谢谢关注“小鱼教你模数电”,各平台同号 3372

单片机IO详解(上拉 下拉 准双向 输入 输出 推挽 开漏)

一般单片机都会提供上拉和下拉功能:上拉:将不确定的信号,固定在高电平,电源到器件引脚上的电阻叫上拉电阻,作用是平时使用该引脚为高电平,上拉是对器件注入电流,即灌电流下拉:将不确定的信号,固定到地点平,地到器件引脚的电阻叫下拉电阻,作用是平时使该引脚为低电平,下拉是从器件输出电流,即拉电流输入:上拉输入 :将不确定的信号通过一个电阻嵌位在高电平下拉输入 :把电压拉低,拉到GND,将不确定的信号拉到低电平输入浮空:容易受到干扰,检测电平是不定的模拟:传统方式的输入,数字模拟转换施密特输入:防止电路干扰基本电路的

IT嵌入式小生 1万+

基于FFmpeg与Nginx的大华摄像头实时视频Web接入方案

本文详细介绍了一种基于FFmpeg与Nginx的大华摄像头实时视频Web接入方案。该方案通过FFmpeg将摄像头RTSP协议流转换为浏览器友好的HLS格式,并利用Nginx进行高效分发,最终结合Video.js构建前端播放页面,实现无需插件的跨平台实时监控。方案具有免费、轻量、稳定、易于部署的特点,适合中小企业、个人开发者快速搭建内部监控或展示系统。

weixin_28040125的博客 346

上拉/下拉电阻 和 开漏/推挽输出 之间的关系

上拉/下拉电阻 和 开漏/推挽输出之间的关系

个人风格极强的知识汇总 2667

单片机欠压保护、欠压复位的用法及作用

一. 前言 使用编程环境 :KEIL mdk4 单片机 : NRF24LE1   二. 分析 查询各开发芯片的数据手册,一般在电源管理或者复位设置章节中。以下NRF24LE1为例: Power supply supervisor(电源监控): 电源主管在开机时对系统进行初始化,对即将发生的情况提供预警当电源电压过低而不能安全运行时,系统处于复位状态。 电源管理框图如下:   ...

城南花已开的博客 8401

【硬刚Hive】HIVE基础(20):Hive函数(9) over 窗口函数

欢迎关注博客主页:微信搜:import_bigdata,大数据领域硬核原创作者_王知无(import_bigdata)_优快云博客 欢迎点赞、收藏、留言 ,欢迎留言交流!本文由【王知无】原创,首发于 优快云博客!本文首发优快云论坛,未经过官方和本人允许,严禁转载! 本文是对《【硬刚大数据之学习路线篇】从零到大数据专家的学习指南(全面升级版)》的Hive部分补充。 hive窗口函数语法 在前言中我们已经说了avg()、sum()、max()、min()是分析函数,而over()才是窗..

微信搜:import_bigdata,大数据领域硬核原创作者 888

最详细STM32四种输入模式和四种输出模式

最详细STM32四种输入模式和四种输出模式解释,以及对应的使用方式(一文搞定)

Savage888777的博客 2万+

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

STM32 GPIO的输入、输出模式的介绍&&应用总结(模拟/浮空/上拉/下拉/&&推挽/开漏)

GPIO的输入、输出总结一、输入模式1、GPIO_Mode_AIN(==模拟输入==)2、GPIO_Mode_IN_FLOATING(==浮空输入==)3、GPIO_Mode_IPD(==下拉输入==)、GPIOGPIO_Mode_IPU(==上拉输入==)二、输出模式1、推挽输出2、 开漏输出3、推挽和开漏输出的区别: 一、输入模式 1、GPIO_Mode_AIN(模拟输入) GPIO的模拟输入用于处理模拟信号,所谓模拟信号,其实就是电压从0~3.3V的变化的过程,外部的感应设备在检测到外部的变化时,将

君墨澜 5913

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

推挽输出和开漏输出区别

推挽输出:可以输出高,低电平,连接数字器件。 输出 0 时,N-MOS 导通,P-MOS 高阻,输出0。 输出 1 时,N-MOS 高阻,P-MOS 导通,输出1(不需要外部上拉电路)。开漏输出:输出端相当于三极管的集电极. 要得到高电平状态需要上拉电阻才行. 适合于做电流型的驱动,其吸收电流的能力相对强(一般20ma以内). 输出 0 时,N-MOS 导通,P-MOS 不被激活,输出0。

lostand的专栏 8万+

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

stm32的8种GPIO输入输出模式区别

GPIO的8种输入与输出 一.四种输入模式 1.GPIO_Mode_IN_FLOATING(浮空输入) 2. GPIO_Mode_IPU(上拉输入) 3. GPIO_Mode_IPD(下拉输入) 4. GPIO_Mode_AIN(模拟输入) (1).浮空输入 我的理解是此种模式下,io口的高低电平是不确定的,完全是由外部电平决定。从网上了解到该种模式多用于外部按键检测和ADC输入用,这两种我都还没用过。但回想一下,我在暑假用正点原子的mini开发板做两个呼吸灯交替实验的的时候,用到了此种模式,查找中文参考手

m0_46507918的博客 6398

开漏输出与推挽

1.推挽输出:可以输出高,低电平,连接数字器件。 输出 0 时,N-MOS 导通,P-MOS 高阻,输出0。 输出 1 时,N-MOS 高阻,P-MOS 导通,输出1(不需要外部上拉电路)。 开漏输出:输出端相当于三极管的集电极。适合于做电流型的驱动,其吸收电流的能力相对强 输出 0 时,N-MOS 导通,P-MOS 不被激活,输出0。 输出 1 时,N-MOS 高阻, P-MOS...

yhy2690 5192

通俗易懂讲STM32为GPIO的8种模式(上拉输入、下拉输入、模拟输入、浮空输入,开漏输出,推挽输出)

这一种输入模式的电平会完全取决于外部电路而与内部电路无关。有时候会用作对开关按键的读取。但是在没有外部电路接入的时候,IO脚浮空会使得电平不确定。

qq_58662017的博客 1816

GPIO输出模式:推挽与漏极开漏详解

一个 GPIO 根据内部 MOS 管的开关情况,存在三种输出状态,分别是高电平、低电平和高阻态。推挽输出,是通过开关管直接接到正极和负极的,所以是强上拉和强下拉的模式。开漏输出是去掉强上拉的开关管,输出低电平时,下管导通,是强下拉。输出高电平时,下管断开,但是没有上管了,此时引脚处于浮空状态,也就是高阻态。开漏输出一般都会配置一颗外部的上拉电阻。通过一个电阻拉到高电平的,属于弱上拉。弱上拉的好处:1. 完全杜绝了电源短路现象,保证电路的安全;2. 避免了引脚模式的频繁切换;

ecjtuAndy的专栏 2377

从硬件分析推挽输出和开漏输出详细区别

推挽输出:可以输出高,低电平,连接数字器件。  输出 0 时,N-MOS 导通,P-MOS 高阻,输出0。  输出 1 时,N-MOS 高阻,P-MOS 导通,输出1(不需要外部上拉电路)。 开漏输出:输出端相当于三极管的集电极. 要得到高电平状态需要上拉电阻才行. 适合于做电流型的驱动,其吸收电流的能力相对强(一般20ma以内).  输出 0 时,N-MOS 导通,P-MOS 不被激活,输出0...

qq_27016651的博客 3万+

STM32F1xx的IIC/I2C通信+推挽/开漏区别+是否上拉

一、硬件配置相关 IIC的SCL和SDA都要求接上拉电阻,也即,只要主机和从机都还没开始干活,那么SCL和SDA就都是空闲的(默认的高电平状态被称为“空闲”,也可以称总线被“释放”),同理,SCL或SDA为low时,就称总线被占用或正忙。 IIC协议要求:SCL和SDA必须都是【开漏+上拉】! 简单些一下开漏和推挽的区别:参考《从硬件分析推挽输出和开漏输出详细区别》 (1)推挽:写1时,GP...

野生猿-群号1025127672 1万+
上一篇: C语言获取编译时间(stm32中常用到)__DATE__和__TIME__
onClick123
博客等级 码龄9年 43粉丝 4原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值