【超详细】output level 和 pull up/ pull down 的真正区别

article/2025/10/30 5:48:46

目录

  • 【超详细】output level 和 pull up/ pull down 的真正区别
    • 1. Output Level
    • 2. Pull up/ Pull down
    • 3. 两者的区别
      • 1)对于Output口来说
      • 2)而对于Input口来说
    • 总结
    • 参考资料

【超详细】output level 和 pull up/ pull down 的真正区别

今天在使用stm32f103c8t6,利用GPIO口实现开关信号的时候遇见了这个问题。我将开关的两端分别接在两个GPIO口上,一个IO口设为Input,一个IO口设为Output。我希望开关未导通时,Input口为高电平,导通后为低(这么做的原因见下文)。当我看见output level和pull up/ pull down这两个选项的时候,晕乎乎不知道到底有什么区别。查了很多资料,加上亲自利用串口输出和万用表做实验,终于有了眉目。这里总结一下。


1. Output Level

这一条仅适用于被设置为Output的GPIO口。通常有两种选项:高电平/ 低电平,分别代表将该Output口设为默认输出高电平/ 默认输出低电平

Output Level

这点很好理解,完全就是字面意思:程序初始化之后该Output口输出的电平信号是高还是低。

在随后的程序中可以随时改变这个输出信号,改变之后就保持不变直至下次被改变。

这里需要注意的是,Output口意味着电平不会被外界输入电平所改变。而Input口意味着,当接收到任何外界输入电平时,该GPIO口的电平都会与之保持一致。


2. Pull up/ Pull down

这一条对Output和Input的GPIO口都适用。

这里摘录一段文字,很好的介绍了Pull up(拉高)/ Pull down(拉低)的意思。

上拉电阻的目的是为了保证在无信号输入时输入端的电平为高电平。而在信号输入为低电平是输入端的电平应该也为低电平。如果没有上拉电阻,在没有外界输入的情况下输入端是悬空的,它的电平是未知的无法保证的,上拉电阻就是为了保证无信号输入时输入端的电平为高电平,同样还有下拉电阻它是为了保证无信号输入时输入端的电平为低电平。
(摘自参考资料1)


3. 两者的区别

这两种设置都适用于GPIO中的Output口。那么他们的区别是什么呢?实践中该如何使用呢?

如果看懂了上面的介绍的话,这个问题就很好理解了。

1)对于Output口来说

由于是用来做输出用的,它的电平不会受到外界输入电平影响。为了让Output口按我们的想法输出电平,有两种调整方法:

  1. 代码中调整。如:

    HAL_GPIO_WritePin(GPIOA, GPIO_PIN_1, 1);  // 向A1这个GPIO口写入1(高电平)
    

    便是将A1口(假设A1已经被设为Output类型的GPIO口了)的输出电平设为高电平。

  2. 在初始化GPIO的时候调整。就像在讲解Output Level时用到的图片中的那样,设置初始化之后该Output口的输出电平(之后在代码里可以随时对其做更改)。

因此,设置Output口成为上拉(Pull up)或是下拉(Pull down)就没什么意义了。因为我们不会去接收任何外界电平信号,自然就谈不上“没有外界信号输入时的默认电平状态”了。

但是好像还是有其他方面的影响,这点我不是很确定。



2)而对于Input口来说

上拉/ 下拉的设置可能非常重要。这决定了没有外界输入电平时,该Input口的电平状态。

比如,我希望开关没有连通时,Input口为高电平;按下开关导通Output口和Input口时,Input口变为Output口的低电平状态。

原因是这样的:
我在开关和GPIO口之间连接了一段不短的导线,可能造成电压的损耗,导致传输的高电平电压不足,被误认为低电平。而传输低电平信号达到了同样的目的,却不会出现这种问题。


总结

Output LevelPull up/ Pull down
Output口设置output口的默认输出电平一般没什么用(不确定)
Input口(不适用)无外部电平信号输入时,表现为高电平还是低电平

Input口Output口
没有外界信号输入1.高电平(Pull up) 2.低电平(Pull down) 3.随机不可控(no pull)输出想要输出的信号
有外界电平信号输入与外界信号保持一致不受影响,输出想要输出的信号

参考资料

  1. stm32上拉输入和下拉输入怎么用?
  2. 好像找不到了之前查的那个网页了。。。

http://chatgpt.dhexx.cn/article/9MeRtGXp.shtml

相关文章

OUTPUT,INPUT,INPUT_PULLUP三种模式的区别

一,首先三种模式都需要由pinMode()函数来设置。 (1)设置引脚 为输出(OUTPUT)模式,此时引脚为低阻抗状态,可以向其他电路原件提供电流(通常为40mA以内) (2&a…

Pull Up Method(函数上移)

动机 避免行为重复是很重要的。尽管重复的两个函数也可以各自工作得很好,但重复自身只会成为错误的滋生地,此外别无价值。无论何时,只要系统之内出现重复,你就会面临“修改其中一个却未能修改另一个”的风险。通常,找…

GPIO_PULLUP,PULLDOWN, NOPULL

NOPULL: 对于输出IO,配置为NOPULL,当IO输出高电平时,IO为1, 当IO输出低电平时,IO为0; PULLUP: 对于输入IO, 默认为高电平,当需要改变为低电平时配置为PULLUP。 比如:K…

pullup和pulldown在verilog中的使用方法

0 前言 这段时间涉及到了IO-PAD&#xff0c;在IO-PAD的RTL的时候注意到了pullup和pulldown&#xff0c;对这个知识比较好奇&#xff0c;就研究了一下&#xff0c;顺便记录下来&#xff0c;IO-PAD的内容等我再研究研究再考虑记录吧 >_< 1 pullup和pulldown的介绍 pullu…

电阻(4)之上拉电阻与下拉电阻详解

原文地址点击这里: 上拉(Pull Up )或下拉(Pull Down)电阻(两者统称为“拉电阻”)最基本的作用是:将状态不确定的信号线通过一个电阻将其箝位至高电平(上拉)或低电平(下拉),无论它的具体用法如何,这个基本的作用都是相同的,只是在不同应用场合中会对电阻的阻值…

解决安装文件时2502、2503错误

在安装文件时有时会出现2502、2503错误&#xff0c;重复安装也不会有什么改变&#xff0c;让人很是头疼。这种问题一般是权限的问题导致的&#xff0c;一般有两种解决办法&#xff0c;第一种就是提升当前用户的权限&#xff0c;第二种就是直接使用CMD安装&#xff0c;这里主要说…

java卸载错误2503_修复控制面板卸载程序时提示错误代码2502、2503的方法

在平常生活中大家是如何卸载软件的呢&#xff1f;有的用户会使用第三方工具&#xff0c;例如软件管家等来进行卸载&#xff0c;这样操作的用户占大多数&#xff0c;但是无法将软件卸载干净。有的用户会直接将安装目录全部删掉&#xff0c;这样操作的用户较少。最理想的卸载软件…

联发科MT2503D处理器详细参数介绍

MT2503D集成了一个ARM7EJ-STM内核&#xff0c;它是运行高级gsm协议软件的主处理器&#xff0c;以及多媒体应用程序、单数字信号处理器核&#xff0c;它管理低层 层次调制解调器和先进的音频功能&#xff0c;嵌入式处理器运行蓝牙基带和链路控制协议和蓝牙无线电控制。 MT 2503…

java内部错误2503_win10安装和卸载Java jdk错误出现2503,2502错误

本人android studio3.0运行helloworld都报错,打开不了守护进程,然后看网上说java版本可能不对,想卸载java,发现任务管理器怎么都卸载不了,网上说的两个办法都试了没用,一天的挣扎,终于找到下面网址的解决办法。 在使用java安装程序时,有时候会出现安装和卸载失败的问题…

MT2503D完整规格书,MT2503D daatsheet资料下载

MT2503D SOC Processor Datasheet MT2503D是一种基于低功耗CMOS工艺的集成前沿电源管理单元、模拟基带和无线电电路的单片芯片。 MT2503D是一个功能丰富和功能非常强大的单芯片解决方案&#xff0c;用于高端GSM/GPRS能力。基于32位ARM7EJ-STMRISC处理器&#xff0c;MT2503D的卓…

java卸载2503,无法安装msi格式软件提示错误代码2502、2503怎么办?

无法安装msi格式软件提示错误代码2502、2503怎么办?一遇英文界面&#xff0c;就感觉心里没底&#xff0c;偏偏薄名女偏逢薄命郎&#xff0c;安装msi格式软件&#xff0c;出现了下面界面&#xff1a; The installer has encountered an unexpected error installing this packa…

python错误2503_Win10卸载python总是提示error2503失败各种解决办法

最近win10的电脑装了python的3.4,然后想卸载,就总是提示error 2053,类似于这种: 下面是我的坎坷解决之路: 1、网上说,任务管理器 --> 详细信息 --> explorer.exe结束任务,结束资源管理器,然后,文件--运行新任务 -- 如下图所示: 然后重复卸载操作,然后还是失败…

解决安装node失败 报错2503

此问题是如何遇到的呢&#xff1f; 在node官网下载的安装包&#xff0c;在安装到最后突然报出一个 2503 的弹窗&#xff0c;具体报错内容如下&#xff1a; 导致安装失败&#xff01; 解决方式&#xff1a; 电脑&#xff1a;window 1. 在win 搜索框 找到 “Windows PowerS…

Nodejs安装时出现2503错误

解决方案&#xff1a; 1、管理员身份运行命令行 2、进入nodejs安装包目录 3、在命令行运行以下指令

安装出现2503 error

输入命令&#xff1a; msiexec /package "D:\TortoiseGit-2.13.0.1-64bit.msi"

MT2503原理图芯片资料整合下载,MT2503处理器概述

MT2503处理器在过去两年里,可以说很火的一款物联网芯片了。就是不知道今年咋样了。我也整理了MT2503的一些技术资料,如:datasheet,源码,参考设计,原理图,FAQ等,比较全面,需要的可在下方留言,笔者来分享给你 下面就来讲讲这款SOC吧。 MT2503芯片是基于ARMv7和采用高…

安装nodejs报错2503

提示&#xff1a;解决安装软件报2503错误的方法&#xff08;windows系统&#xff09; 安装Nodejs报错 背景 背景 提示&#xff1a;发现软件装不上背景步骤 现有windows 10操作系统官网下载安装node 官网地址傻瓜式一步步安装&#xff0c;最后报错如下图&#xff1a;报错原因…

QGis 安装 the error code 2503

1、管理员方式打开 CMD命令行&#xff1b; 2、运行 msiexec /package "E:\QGIS-OSGeo4W-3.22.5-1.msi" &#xff1b;

【推荐系统】:协同过滤和基于内容过滤概述

【推荐系统】&#xff1a;协同过滤和基于内容过滤概述 &#x1f338;个人主页&#xff1a;JOJO数据科学&#x1f4dd;个人介绍&#xff1a;统计学top3高校统计学硕士在读&#x1f48c;如果文章对你有帮助&#xff0c;欢迎✌关注、&#x1f44d;点赞、✌收藏、&#x1f44d;订阅…

协同过滤相似度

使用不同相似度计算方式实现协同过滤 如果 买/没买 点/没点数据 0/1 适合使用杰卡德相似度 - from sklean.metrics import jaccard_similarity_score - jaccard_similarity_score(df[item A],df[item B]) -一般使用评分去做协同过滤 推荐使用皮尔逊相关系数 - 评分预测 基于用…