上拉输入、下拉输入、浮空输入、模拟输入的区别

合集下载

gpio的类别

gpio的类别

gpio的类别
GPIO(General Purpose Input/Output,通用输入/输出)的类别或模式可以根据不同的应用和设计需求进行划分。

以下是一些常见的GPIO类别或模式:
1、输入模式(Input Mode):GPIO端口将读取外部设备发出的信号。

2、输出模式(Output Mode):GPIO端口将向外部设备发出信号。

3、复用模式(Multiplexing Mode):GPIO端口可以同时实现输入和输出功能。

4、高阻模式(High Impedance Mode):GPIO端口被设置为高阻模式,输入端口的输入信号会被抑制。

5、推挽输出模式(Push-Pull Output Mode):GPIO端口可以在输出模式时使用推挽输出模式。

6、中断模式(Interrupt Mode):GPIO端口可以捕捉到外部设备发出的信号。

7、测试模式(Test Mode):GPIO端口可以用于测试外部设备。

8、热插拔模式(Hot-Plugging Mode):GPIO端口可以实现热插拔功能。

9、此外,在Cortex-M3等处理器中,GPIO的配置种类可能还包括模拟输入(AIN)、浮空输入(IN_FLOATING)、下拉输入(IPD)、
上拉输入(IPU)、开漏输出(Out_OD)等。

请注意,这些模式并非全部,具体的GPIO类别或模式可能会因处理器、芯片或开发板的不同而有所差异。

因此,在实际应用中,需要参考相关的硬件文档或数据手册以获取准确的GPIO类别和配置信息。

STM32的8种输入输出方式

STM32的8种输入输出方式

如图所示,推挽放大器的输出级有两个“臂”(两组放大元件),一个输入高电平时,输出端的电流将是下级门从本级电源经VT3拉出。

这样一来,输出高低电平时,VT3 一路和 VT5 一路将交替工作,从而减低了功耗,提高了每个管的承受能力。

又由于不论走哪一路,管子导通电阻都很小,使RC常数很小,转变速度很快。

因此,推拉式输出级既提高电路的负载能力,又提高开关速度。

开漏输出:输出端相当于三极管的集电极. 要得到高电平状态需要上拉电阻才行. 适合于做电流型的驱动,其吸收电流的能力相对强(一般20ma以内).开漏形式的电路有以下几个特点:1. 利用外部电路的驱动能力,减少IC内部的驱动。

当IC内部MOSFET导通时,驱动电流是从外部的VCC流经R pull-up,MOSFET到GND。

IC内部仅需很下的栅极驱动电流。

2. 一般来说,开漏是用来连接不同电平的器件,匹配电平用的,因为开漏引脚不连接外部的上拉电阻时,只能输出低电平,如果需要同时具备输出高电平的功能,则需要接上拉电阻,很好的一个优点是通过改变上拉电源的电压,便可以改变传输电平。

比如加上上拉电阻就可以提供TTL/CMOS电平输出等。

(上拉电阻的阻值决定了逻辑电平转换的沿的速度。

阻值越大,速度越低功耗越小,所以负载电阻的选择要兼顾功耗和速度。

)3. OPEN-DRAIN提供了灵活的输出方式,但是也有其弱点,就是带来上升沿的延时。

因为上升沿是通过外接上拉无源电阻对负载充电,所以当电阻选择小时延时就小,但功耗大;反之延时大功耗小。

所以如果对延时有要求,则建议用下降沿输出。

4. 可以将多个开漏输出的Pin,连接到一条线上。

通过一只上拉电阻,在不增加任何器件的情况下,形成“与逻辑”关系。

这也是I2C,SMBus等总线判断总线占用状态的原理。

补充:什么是“线与”?:在一个结点(线)上, 连接一个上拉电阻到电源 VCC 或 VDD 和 n 个 NPN 或 NMOS 晶体管的集电极 C 或漏极 D, 这些晶体管的发射极 E 或源极 S 都接到地线上, 只要有一个晶体管饱和, 这个结点(线)就被拉到地线电平上. 因为这些晶体管的基极注入电流(NPN)或栅极加上高电平(NMOS),晶体管就会饱和, 所以这些基极或栅极对这个结点(线)的关系是或非 NOR 逻辑. 如果这个结点后面加一个反相器, 就是或 OR 逻辑.其实可以简单的理解为:在所有引脚连在一起时,外接一上拉电阻,如果有一个引脚输出为逻辑0,相当于接地,与之并联的回路“相当于被一根导线短路”,所以外电路逻辑电平便为0,只有都为高电平时,与的结果才为逻辑1。

STM32中GPIO的8种工作模式

STM32中GPIO的8种工作模式

在Cortex-M3里,对于GPIO的配置种类有8种之多:(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复用推挽输出对于刚入门的新手,我想这几个概念是必须得搞清楚的,平时接触的最多的也就是推挽输出、开漏输出、上拉输入这三种,但一直未曾对这些做过归纳。

因此,在这里做一个总结:推挽输出:可以输出高,低电平,连接数字器件; 推挽结构一般是指两个三极管分别受两互补信号的控制,总是在一个三极管导通的时候另一个截止。

高低电平由IC的电源低定。

推挽电路是两个参数相同的三极管或MOSFET,以推挽方式存在于电路中,各负责正负半周的波形放大任务,电路工作时,两只对称的功率开关管每次只有一个导通,所以导通损耗小、效率高。

输出既可以向负载灌电流,也可以从负载抽取电流。

推拉式输出级既提高电路的负载能力,又提高开关速度。

详细理解:如图所示,推挽放大器的输出级有两个“臂”(两组放大元件),一个“臂”的电流增加时,另一个“臂”的电流则减小,二者的状态轮流转换。

对负载而言,好像是一个“臂”在推,一个“臂”在拉,共同完成电流输出任务。

当输出高电平时,也就是下级负载门输入高电平时,输出端的电流将是下级门从本级电源经VT3拉出。

这样一来,输出高低电平时,VT3 一路和VT5 一路将交替工作,从而减低了功耗,提高了每个管的承受能力。

又由于不论走哪一路,管子导通电阻都很小,使RC常数很小,转变速度很快。

因此,推拉式输出级既提高电路的负载能力,又提高开关速度。

开漏输出:输出端相当于三极管的集电极. 要得到高电平状态需要上拉电阻才行. 适合于做电流型的驱动,其吸收电流的能力相对强(一般20ma以内).开漏形式的电路有以下几个特点:1. 利用外部电路的驱动能力,减少IC内部的驱动。

STM32推挽输出、开漏输出、上拉输入详解

STM32推挽输出、开漏输出、上拉输入详解

可以输出高,低电平,连接数字器件; 推挽结构一般是指两个三极管分别受两互补信号的控制,总是在一个三极管导通的时候另一个截止。

高低电平由IC的电源决定。

推挽电路是两个参数相同的三极管或MOSFET,以推挽方式存在于电路中,各负责正负半周的波形放大任务,电路工作时,两只对称的功率开关管每次只有一个导通,所以导通损耗小、效率高。

输出既可以向负载灌电流,也可以从负载抽取电流。

推拉式输出级既提高电路的负载能力,又提高开关速度。

当一个三级管开通的时候另一个关断,根据B端来确定,这是一个比较器当a>b时B 输出为0;当a<b时B输出为1当B为1时上边三极管导通,下边关闭;当B为0时下边三极管导通,上边关闭。

此为推挽当B为1时,这个管子导通,OUT接地,输出为0;当B为0时管子不导通,OUT接VCC输出为1.开漏输出:一般只能输出低电平,输出端相当于三极管的集电极. 要得到高电平状态需要上拉电阻才行. 适合于做电流型的驱动,其吸收电流的能力相对强(一般20ma以内).开漏形式的电路有以下几个特点:∙利用外部电路的驱动能力,减少IC(集成电路,也称芯片)内部的驱动。

当IC内部MOSFET导通时,驱动电流是从外部的VCC流经R pull-up ,MOSFET到GND。

IC内部仅需很小的栅极驱动电流。

∙一般来说,开漏是用来连接不同电平的器件,匹配电平用的,因为开漏引脚不连接外部的上拉电阻时,只能输出低电平,如果需要同时具备输出高电平的功能,则需要接上拉电阻,很好的一个优点是通过改变上拉电源的电压,便可以改变传输电平。

比如加上上拉电阻就可以提供TTL/CMOS电平输出等。

(上拉电阻的阻值决定了逻辑电平转换的沿的速度。

阻值越大,速度越低功耗越小,所以负载电阻的选择要兼顾功耗和速度。

)∙OPEN-DRAIN提供了灵活的输出方式,但是也有其弱点,就是带来上升沿的延时。

因为上升沿是通过外接上拉无源电阻对负载充电,所以当电阻选择小时延时就小,但功耗大;反之延时大功耗小。

STM32通俗介绍

STM32通俗介绍

简述1STM32的输入输出管脚有下面8种可能的配置:(4输入+2输出+2复用输出)①浮空输入_IN_FLOATING②带上拉输入_IPU③带下拉输入_IPD(所谓上拉就是接一电阻到电源;下拉就是接一电阻到地。

也就是说带上拉就是口初始的时候是高电平,下拉就是低电平。

)④模拟输入_AIN⑤开漏输出_OUT_OD⑥推挽输出_OUT_PP⑦复用功能的推挽输出_AF_PP⑧复用功能的开漏输出_AF_OD1.1 I/O口的输出模式下,有3种输出速度可选(2MHz、10MHz和50MHz),这个速度是指I/O口驱动电路的响应速度而不是输出信号的速度,输出信号的速度与程序有关(芯片内部在I/O口的输出部分安排了多个响应速度不同的输出驱动电路,用户可以根据自己的需要选择合适的驱动电路)。

通过选择速度来选择不同的输出驱动模块,达到最佳的噪声控制和降低功耗的目的。

高频的驱动电路,噪声也高,当不需要高的输出频率时,请选用低频驱动电路,这样非常有利于提高系统的EMI性能。

当然如果要输出较高频率的信号,但却选用了较低频率的驱动模块,很可能会得到失真的输出信号。

关键是GPIO的引脚速度跟应用匹配(推荐10倍以上?)。

比如:1.1.1 对于串口,假如最大波特率只需115.2k,那么用2M的GPIO的引脚速度就够了,既省电也噪声小。

1.1.2 对于I2C接口,假如使用400k波特率,若想把余量留大些,那么用2M的GPIO的引脚速度或许不够,这时可以选用10M的GPIO引脚速度。

1.1.3 对于SPI接口,假如使用18M或9M波特率,用10M的GPIO的引脚速度显然不够了,需要选用50M的GPIO的引脚速度。

输入模式。

1.4 所有端口都有外部中断能力。

为了使用外部中断线,端口必须配置成输入模式。

1.5 GPIO口的配置具有上锁功能,当配置好GPIO口后,可以通过程序锁住配置组合,直到下次芯片复位才能解锁。

2 在STM32中如何配置片内外设使用的IO端口首先,一个外设经过①配置输入的时钟和②初始化后即被激活(开启);③如果使用该外设的输入输出管脚,则需要配置相应的GPIO端口(否则该外设对应的输入输出管脚可以做普通GPIO管脚使用);④再对外设进行详细配置。

上拉与下拉的原理

上拉与下拉的原理

上拉与下拉的原理作为我们日常生活中常用的一种功能,拉动和推动是我们无处不在的动作。

而在科技领域中,拉动与推动也扮演着重要的角色。

在计算机领域中,常常提到的“拉动”和“推动”就是指“以上拉”和“下拉”。

这两种操作方式被广泛应用在各种应用程序和网页设计中,为用户提供了更好的交互体验。

那么,究竟什么是以上拉和下拉呢?以上拉和下拉实际上是指在用户界面中,通过鼠标或触摸屏进行的一种操作方式。

以上拉指的是用户通过向上滑动屏幕或鼠标滚轮向上滚动的动作,而下拉则相反,是指用户通过向下滑动屏幕或鼠标滚轮向下滚动的动作。

以上拉和下拉的原理主要涉及到两个方面:输入设备和应用程序的响应。

首先,输入设备(鼠标或触摸屏)会通过感应用户手势的方式将用户的操作转化为相应的信号。

例如,当用户在触摸屏上向上滑动手指时,触摸屏会通过电容或压力传感器感知到用户的手势,并将其转化为相应的信号。

同样地,当用户通过鼠标滚轮向上滚动时,鼠标会通过内部的滚轮传感器感知到用户的操作,并将其转化为相应的信号。

接下来,应用程序会根据接收到的信号进行相应的响应。

对于以上拉的操作,应用程序通常会将屏幕向上滚动,以显示更多的内容或选项。

例如,在一个网页中,用户通过以上拉的操作可以滚动页面以浏览更多的内容。

对于下拉的操作,应用程序通常会将屏幕向下滚动,以显示以前的内容或选项。

例如,在一个聊天应用程序中,用户通过下拉操作可以查看以前的聊天记录。

以上拉和下拉的原理主要基于两个技术:滚动技术和触摸屏技术。

滚动技术是指通过改变页面或应用程序中的滚动条位置来实现滚动的操作。

触摸屏技术是指通过感应用户手势并将其转化为相应的信号来实现滚动的操作。

这两个技术的结合使得以上拉和下拉成为了我们日常生活中不可或缺的一部分。

总结起来,以上拉和下拉的原理是基于输入设备和应用程序的响应。

通过感应用户手势并将其转化为相应的信号,我们可以通过以上拉和下拉的操作方式来实现屏幕的滚动和内容的显示。

STM32单片机的八种IO口模式解析

STM32单片机的八种IO口模式解析

STM32单片机的八种IO口模式解析
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复用推挽输出
以下是详细讲解
(1)GPIO_Mode_AIN模拟输入
即关闭施密特触发器,将电压信号传送到片上外设模块(不接上、下拉电阻)
(2)GPIO_Mode_IN_FLOATING浮空输入
浮空输入状态下,IO的电平状态是不确定的,完全由外部输入决定,如果在该引脚悬空的情况下,读取该端口的电平是不确定的
(3)GPIO_Mode_IPD下拉输入GPIO_Mode_IPU上拉输入
一般来讲,上拉电阻为1K-10K,电阻越小,驱动能力越强
电阻的作用:防止输入端悬空,减少外部电流对芯片的干扰,限流;,增加高电平输出时的驱动能力。

上拉输入:在默认状态下(GPIO引脚无输入)为高电平
下拉输入:在默认状态下(GPIO引脚无输入)为低电平
(4)GPIO_Mode_Out_OD开漏输出
开漏输出:输出端相当于三极管的集电极。

要得到高电平状态需要上拉电阻才行。

适合于做电流型的驱动,。

悬浮与上拉,开漏与推挽电路分析

悬浮与上拉,开漏与推挽电路分析

1.1.1悬浮输入与上拉输入悬浮输入与上拉输入是两种输入方式,不同之处在于上拉输入时,引脚内部有个上拉电阻。

当引脚悬空时,上拉输入的引脚电平是确定的,即高电平;而悬浮输入则不同,它的电平是不确定的,即使外部的一个很小的信号都会使其发生改变。

上拉输入最典型的应用就是外部按键,当按键未按下时,我们要保证它是高电平,当按键按下时才被拉低;而悬浮输入的典型应用就是模数转换,外部的任何一个小信号都要经过A/D采样转换为数字信号。

1.1.2开漏输出与推挽输出1.开漏输出说开漏输出之前,我们先来看看什么是集电极开路输出。

图错误!文档中没有指定样式的文字。

-1 集电极开路集电极开路输出的结构图如图错误!文档中没有指定样式的文字。

-1所示,三极管Q1的集电极就是单片机的I/O口,什么都不接,所以叫做集电极开路。

当控制端输入为“0”时,三极管Q2截止,及集电极与发射机之间断开,所以5V电压通过R1接到Q1的基级,Q1导通,即相当于管脚直接接地;当控制端输入“1”时,三极管Q2导通,Q1截止,输出引脚与地之间断开。

我们将图错误!文档中没有指定样式的文字。

-1简化为图错误!文档中没有指定样式的文字。

-2所示。

图错误!文档中没有指定样式的文字。

-2 集电极开路简化图图错误!文档中没有指定样式的文字。

-2中的开关受软件控制,“1”时断开,“0”时闭合。

很明显可以看出,当开关闭合时,输出直接接地,所以输出低电平。

而当开关断开时,则输出端悬空,即引脚为高阻态。

这时电平状态未知,如果后面一个电阻负载(即使很轻的负载)到地,那么输出端的电平就被这个负载拉到低电平了,所以这个电路是不能输出高电平的。

图错误!文档中没有指定样式的文字。

-3 带上拉电阻的开漏输出图错误!文档中没有指定样式的文字。

-3中的10K电阻即是上拉电阻。

当开关闭合,输出管脚直接接地,输出为低电平,当开关断开,电流经过10K电阻流入负载,相当于管脚输出高电平。

明白了集电极开路,那么开漏输出就简单了,只要把三极管换成场效应管即可,这样,集电极就变成了漏极,而原理分析是一样的。

IO的悬浮、上拉、下拉

IO的悬浮、上拉、下拉

IO的悬浮、上拉、下拉
IO的悬浮、上拉、下拉。

原理见图,在IC设计中基本上不设计电阻,通常用MOS管代替。

当NMOS和PMOS都截止时,IO处于悬浮;当NMOS导通、PMOS 截止,IO处于上拉;当PMOS导通、NMOS截止,IO处于下拉。

明白原理后就容易理解:悬浮就是高阻,读空闲的悬浮IO,则状态不确定;上、下拉的驱动是有电流限制的,因为电流要通过MOS管!
应用:
1)悬浮:要读他的IO状态,必须要先给IO加‘1’或‘0’电平,然后再读。

基于这种先后次序,所以通常悬浮IO用于bus总线,比如:带R/W的并行数据或地址总线。

它最大的好处是节能、降低驱动的负荷、设备IO的并联使用。

当然,不一定只用于bus,其它类似的也可以用,比如:uart的rx
2)上或下拉:作为输入时,通常用于IO状态测试。

用于上拉时,通常状态是‘0’有效,要求抗干扰和系统上电等的应用,比如:低电平(下降沿)中断;用于下拉时,通常状态是‘1’有效,除非你的系统IO有特殊要求(比如:RTL8019AS的中断是‘1’有效,平时处于‘0’状态),通常不做这种设计应用(抗干扰能力问题)。

作为输出时,一般设置为上拉状态,不管哪种IC,它的灌出电流在3~5mA,吸入电流在10~20mA。

很少有下拉做输出的IC,因为自身IO的功耗提高!。

推挽输出、开漏输出、复用开漏输出、复用推挽输出以及上拉输入、下拉输入..

推挽输出、开漏输出、复用开漏输出、复用推挽输出以及上拉输入、下拉输入..

推挽输出、开漏输出、复用开漏输出、复用推挽输出以及上拉输入、下拉输入、浮空输入、模拟输入区别(Push-pull output, open drain output, multiplexing, multiplexing open drain output push-pull output and pull input and pull-down input, floatinginput, analoThe push-pull output, open drain output, multiplexing, multiplexing open drain output push-pull output and pull input and pull-down input, floating input, analog input differenceAbout Push-Pull Outputs, open drain outputs, multiplexed open drain outputs, and multiplexed Push-Pull OutputsPull down input, input, floating input, analog input and differenceWhen I read the data book recently, I found that there are 8 kinds of configuration for GPIO in Cortex-M3:(1) GPIO_Mode_AIN analog input(2) GPIO_Mode_IN_FLOATING floating input(3) GPIO_Mode_IPD pull down input(4) GPIO_Mode_IPU pull-up input(5) GPIO_Mode_Out_OD open drain output(6) GPIO_Mode_Out_PP push-pull output(7) GPIO_Mode_AF_OD multiplex open drain output(8) GPIO_Mode_AF_PP multiplex push-pull outputFor the novice, I think this concept is must know, usually contact is the most open drain push-pull output, output, pull the input of the three, but has not done up to these. So, here's a summary:Push-pull output: can output high, low level, connect digital devices; push-pull structure is generally refers to two transistors respectively by two complementary signal control, always in a triode conduction time another cut-off. The high and low levels are limited by the power of the IC.The push-pull circuit is the two parameter of the same transistor or MOSFET in push-pull mode exists in the circuit, each responsible for the positive and negative half cycles of wave amplification, circuit, power switch two symmetrical tube only one conduction,Therefore, the conduction loss is small and the efficiency is high. The output can either tap the load or extract the current from the load. The push-pull type output stage not only improves the load capacity of the circuit, but also increases the speed of switching.Detailed understanding:As shown, the output stage of the push-pull amplifier has twoarms (two sets of amplifying elements). When an arm current increases, another arm current decreases, and the two states rotate in turn. For load, it seems that a "arm" is pushing, a "arm" in the pull, together to complete the current output task. When the output high power, that is, the lower load gate input high power, the output current will be lower than the gate from the power supply through the VT3 pull out. In this way, when the output is high or low, the VT3 and the VT5 will work alternately, thus reducing the power consumption and improving the endurance of each tube. Because no matter which way to go, the resistance of the pipe is very small, so that the RC constant is very small, and the conversion speed is very fast. Therefore, the push-pull type output stage not only improves the load capacity of the circuit, but also improves the switching speed.Open drain output: the output is equivalent to the collector of the triode. In order to get a high level state, a pull-up resistor is needed. It is suitable for making current mode drivers and has relatively strong ability to absorb current (less than 20mA in general)The open drain circuit has the following characteristics:1. use external circuit drive capability to reduce IC internal drive. When the IC is internally MOSFET, the drive current is flowing from the external VCC through the R, pull-up, MOSFET to GND. The IC requires only a very low gate drive current.2. generally speaking,Open drain is a device used to connect different levels, withthe matching level, because the open drain pin is not connected to an external pull-up resistor, only the output low, if you need to have a high level output function requires a pull-up resistor, a good advantage is by changing the power supply voltage on it can change the transmission level. For example, with a pull-up resistor, you can provide TTL/CMOS level output. The resistance of the pull-up resistor determines the speed at which the level of the logic level is converted. The higher the resistance, the lower the speed, the smaller the power consumption, so the choice of load resistance should take into account both power consumption and speed3., OPEN-DRAIN offers flexible output, but also has its weakness, that is, to bring the delay along the rising edge. Because the rising edge charges the load through an external pull-up passive resistor, when the resistor is selected, the time delay is small, but the power consumption is large; on the contrary, the delay is large and the power consumption is small. Therefore, if the delay is required, it is recommended to use the falling edge output.4., you can connect multiple open drain Pin to one line. Througha pull-up resistor, a logical relationship is formed without increasing the number of devices. This is also the principle of I2C, SMBus and other buses to determine the bus occupancy status. Added: what is "line and"? :In a node (line), connect a pullup resistor to the collector C power VCC or VDD and N or NPN NMOS or drain D transistor, the transistor emitter E or S source are connected with a ground wire, as long as there is a transistor saturation, this node(line) is pull to the ground level.Because the base transistor current injection (NPN) or gate with high level (NMOS), the transistor will be saturated, so the base or gate of the node (line) is the relationship or non NOR logic. If this node is followed by an inverter is OR or logic.In fact, can be simply understood as: all pins are connected together, an external pull-up resistor, if there is a pin output to logic 0, equivalent to the ground, and the parallel loop "is equivalent to a wire short circuit, so the external circuit logic level is 0, only for high level, and the result is logic 1.For push-pull output and open drain output, the last one is outlined in the simplest form:This figure is on the left side of the push-pull output mode, the comparator output high power triode PNP usually below and above the pipe cut-off, NPN triode output level VS+; when the comparator output low on the contrary, PNP triode output and connected to low electrical level. The right side can be understood as open drain output, which needs to be pulled up.Floating input: input for floating, very authoritative interpretation has not been found, but from the following diagram to understand.The floating input is generally used for the external input keys, combined with the input part of the circuit diagram, Iunderstand the floating input condition, level IO is uncertain, completely decided by external input, if the pin is left unconnected in case of the level of the read port is uncertain.Pull input / pull-down input / analog input: these concepts are well understood and can be easily understood from the literal.Multiplex open drain output and multiplex push-pull output: this can be understood as the configuration of the GPIO port when it is used as the second function (that is not used as a universal IO port)Finally, a summary of the use of the situation:Select IO mode in STM32(1) _IN_FLOATING - floating input floating input, can do KEY identification, RX1(2) pull input _IPU - IO internal pull-up resistor input(3) bring down the input _IPD - IO internal pull-down resistor input(4) analog input _AIN - use ADC analog input or save power at low power consumption(5) open drain output _OUT_OD - IO output 0, connect GND, IO output 1, suspension, need external pull-up resistor, can realize the output high level. When the output is 1, the state of the IO port is pulled high by the pull-up resistor, butbecause it is an open drain output mode, the IO port can also be changed from an external circuit to a low level or constant. Can read the IO input level changes, the realization of C51 IO two-way function(6) push-pull output _OUT_PP - IO output, 0-, GND, IO output, 1 - VCC, read input value is unknown(7) multiplex function push-pull output _AF_PP - chip internal and external functions (I2C, SCL, SDA)(8) the open drain output of multiplex function _AF_OD - chip internal and external functions (TX1, MOSI, MISO.SCK.SS)STM32 settings instance:(1) simulation using the I2C open drain output _OUT_OD, pull-up resistor, can output 0 and 1 readings; first GPIO_SetBits (GPIOB, GPIO_Pin_0); pull up, then you can read the value of IO; GPIO_ReadInputDataBit (GPIOB, GPIO_Pin_0);(2) if the supreme resistance is high, the IO default; need to read the value of IO, you can use the pull input _IPU and float input _IN_FLOATING and open drain output _OUT_OD;。

stm32的IO模式具体意义

stm32的IO模式具体意义

stm32的IO模式具体意义
Ⅰ、写在前面
在开发STM32的时候,都需要对IO的模式进行配置(GPIO_InitStructure. GPIO_Mode = xxx)。

但是,你们都知道各种模式的具体意义吗?
有的人问:IO口输出可以上拉吗?开漏输出是干什么用的?
其实这些问题并不难,只要你了解到每一种模式的真正意思,相信这些问题都不会难道你。

本文的内容比较基础,也比较实用,希望对你有所帮助。

关于本文的详细内容请看下面章节
Ⅱ、模式说明
STM32芯片的IO有8中模式:
(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 复用推挽输出
四种输入模式+ 四种输出模式
上面IO结构图来自STM32F1参考手册,从图中可以看得出来IO口大致的结构,也能反映出各种模式。

代码中常见的一些配置:。

有关推挽输出、开漏输出、复用开漏输出、复用推

有关推挽输出、开漏输出、复用开漏输出、复用推

有关推挽输出、开漏输出、复用开漏输出、复用推挽输出以及上拉输入、下拉输入、浮空输入、模拟输入的区别最近在看数据手册的时候,发现在Cortex-M3里,对于GPIO的配置种类有8种之多:(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 复用推挽输出对于刚入门的新手,我想这几个概念是必须得搞清楚的,平时接触的最多的也就是推挽输出、开漏输出、上拉输入这三种,但一直未曾对这些做过归纳。

因此,在这里做一个总结:推挽输出:可以输出高,低电平,连接数字器件; 推挽结构一般是指两个三极管分别受两互补信号的控制,总是在一个三极管导通的时候另一个截止。

高低电平由IC的电源低定。

推挽电路是两个参数相同的三极管或MOSFET,以推挽方式存在于电路中,各负责正负半周的波形放大任务,电路工作时,两只对称的功率开关管每次只有一个导通,所以导通损耗小、效率高。

输出既可以向负载灌电流,也可以从负载抽取电流。

推拉式输出级既提高电路的负载能力,又提高开关速度。

详细理解:如图所示,推挽放大器的输出级有两个“臂”(两组放大元件),一个“臂”的电流增加时,另一个“臂”的电流则减小,二者的状态轮流转换。

对负载而言,好像是一个“臂”在推,一个“臂”在拉,共同完成电流输出任务。

当输出高电平时,也就是下级负载门输入高电平时,输出端的电流将是下级门从本级电源经VT3拉出。

这样一来,输出高低电平时,VT3 一路和 VT5一路将交替工作,从而减低了功耗,提高了每个管的承受能力。

又由于不论走哪一路,管子导通电阻都很小,使RC常数很小,转变速度很快。

上拉输入、下了输入、推挽输出、开漏输出、复用开漏输出、复用推挽输出以及、浮空输入、模拟输入区别

上拉输入、下了输入、推挽输出、开漏输出、复用开漏输出、复用推挽输出以及、浮空输入、模拟输入区别

上拉输入、下了输入、推挽输出、开漏输出、复用开漏输出、复用推挽输出以及、浮空输入、模拟输入区别有关上拉输入、下了输入、推挽输出、开漏输出、复用开漏输出、复用推挽输出以及、浮空输入、模拟输入区别最近在网上看见一些人对STM32的八种方式的解释,说了一大堆,最后看完了也不知道讲了什么,为了方便大家一目了然,本人总结如下,希望对大家有帮助。

1、上拉输入:上拉就是把电位拉高,比如拉到Vcc。

上拉就是将不确定的信号通过一个电阻嵌位在高电平!电阻同时起限流作用!弱强只是上拉电阻的阻值不同,没有什么严格区分。

2、下拉输入:就是把电压拉低,拉到GND。

与上拉原理相似。

3、浮空输入:浮空(floating)就是逻辑器件的输入引脚即不接高电平,也不接低电平。

由于逻辑器件的内部结构,当它输入引脚悬空时,相当于该引脚接了高电平。

一般实际运用时,引脚不建议悬空,易受干扰。

通俗讲就是让管脚什么都不接,浮空着。

4、模拟输入:模拟输入是指传统方式的输入.数字输入是输入PCM数字信号,即0,1的二进制数字信号,通过数模转换,转换成模拟信号,经前级放大进入功率放大器,功率放大器还是模拟的。

5、推挽输出:可以输出高,低电平,连接数字器件; 推挽结构一般是指两个三极管分别受两互补信号的控制,总是在一个三极管导通的时候另一个截止。

高低电平由IC的电源低定。

6、开漏输出:输出端相当于三极管的集电极. 要得到高电平状态需要上拉电阻才行. 适合于做电流型的驱动,其吸收电流的能力相对强(一般20ma以内).7、复用开漏输出、复用推挽输出:可以理解为GPIO口被用作第二功能时的配置情况(即并非作为通用IO口使用)。

在STM32中选用IO模式,下面是参考网上的总结一下。

(1)浮空输入_IN_FLOATING ——浮空输入,可以做KEY识别,RX(2)带上拉输入_IPU——IO内部上拉电阻输入(3)带下拉输入_IPD——IO内部下拉电阻输入(4)模拟输入_AIN ——应用ADC模拟输入,或者低功耗下省电(5)开漏输出_OUT_OD ——IO输出0接GND,IO输出1,悬空,需要外接上拉电阻,才能实现输出高电平。

GPIO8种工作模式小结

GPIO8种工作模式小结

GPIO8种⼯作模式⼩结写在前⾯: General Purpose Input Output (通⽤输⼊/输出)简称为GPIO,或总线扩展器,⼈们利⽤⼯业标准I2C、SMBus 或SPI接⼝简化了I/O⼝的扩展。

当微控制器或芯⽚组没有⾜够的I/O端⼝,或当系统需要采⽤远端串⾏通信或控制时,GPIO产品能够提供额外的控制和监视功能。

GPIO的常⽤四种输出⽅式: (1)推挽输出 (2)开漏输出 (3)复⽤推挽 (4)复⽤开漏。

四种输⼊⽅式: (1)浮空输⼊ (2)上拉输⼊ (3)下拉输⼊ (4)模拟输⼊下⽂将介绍GPIO的⼋种输⼊/输出模式: ⼀、推挽输出: 可以输出⾼、低电平,连接数字器件;推挽结构⼀般是指两个三极管分别受两个互补信号的控制,总是在⼀个三极管导通的时候另⼀个截⽌。

⾼低电平由IC的电源决定。

推挽电路是两个参数相同的三极管或MOSFET,以推挽⽅式存在于电路中,各负责正负半周的波形放⼤任务,电路⼯作时,两只对称的功率开关管每次只有⼀个导通,所以导通损耗⼩、效率⾼。

输出既可以向负载灌电流,也可以从负载抽取电流。

推拉式输出级既提⾼电路的负载能⼒,⼜提⾼开关速度。

⼆、开漏输出: 输出端相当于三极管的集电极,要得到⾼电平状态需要上拉电阻才⾏。

适合于做电流型的驱动,其吸收电流的能⼒相对强(⼀般20mA以内)。

开漏形式的电路有以下⼏个特点: 1、利⽤外部电路的驱动能⼒,减少IC内部的驱动。

当IC内部MOSFET导通时,驱动电流是从外部的VCC流经上拉电阻、MOSFET到GND。

IC内部仅需很⼩的栅极驱动电流。

2、⼀般来说,开漏是⽤来连接不同电平的器件,匹配电平⽤的,因为开漏引脚不连接外部的上拉电阻时,只能输出低电平,如果需要同时具备输出⾼电平的功能,则需要接上拉电阻,很好的⼀个优点是通过改变上拉电源的电压,便可以改变传输电平。

⽐如加上上拉电阻就可以提供TTL/CMOS电平输出等。

(上拉电阻的阻值决定了逻辑电平转换的速度。

stm32输入配置有上拉,下拉,浮空三种模式

stm32输入配置有上拉,下拉,浮空三种模式
博客园 用户登录 代码改变世界 密码登录 短信登录 忘记登录用户名 忘记密码 记住我 登录 第三方登录/注册 没有账户, 立即注册
stm32输 入 配 置 有 上 拉 , 下 拉 , 浮 空 三 种 模 式
stm32输入配置有上拉,下拉,浮空三种模式
配置输入的时候有你说的三种模式外还有模拟输入。上拉输入模式:区别在于没有输入信号的时候默认输入高电平(因为有弱上拉)。下拉 输入模式:区别在于没有输入信号的时候默认输入(因为有弱下拉)。对于浮空输入模式顾名思义也就是输入什么信号才是什么信号,对于 浮空

GPIO口配置为上拉,下拉输入

GPIO口配置为上拉,下拉输入

GPIO口配置为上拉,下拉输入
GPIO⼝配置为上拉,下拉输⼝
每个gpio内部有三种状态:上拉、下拉、不拉。

什么时候,需要选择上拉、下拉或不拉呢
1. 如果是output,那个⼝般选择no pull,这样,引脚才能根据你的output数据,进⼝正确输出。

2. 如果是input,那么需要看具体应⼝的默认输⼝值是0还是1.
2.1 如果默认是输⼝0,则最好配置为pull down,反之则配置为pull up.
这样做,主要是为了外部电路在没有上下拉的情况下,出现不确定情况。

有许多硬件⼝程师设计电路时,会在GPIO⼝的外部设计上下拉电阻,这和内部配置pull up/down是⼝个⼝的,且效果相同。

3.举例说明
PULLUP&PULLDOWN针对输⼝模式,⼝如我们⼝个单⼝机的I / O脚接⼝个按键的左端,按键的右端接正电源,那么我们就要设置I / O脚为下拉模式,因为这样才能使得按键按下去的时候,能把I / O 脚拉⼝,不然设置上拉模式的话,即按键的功能等于摆设。

同理,如果按键另⼝端接地,我们就要设置为上拉模式了。

4. 总结
上拉电阻的⼝的是为了保证在⼝信号输⼝时输⼝端的电平为⼝电平。

⼝在信号输⼝为低电平时输⼝端的电平应该也为低电平。

如果没有上拉电阻,在没有外界输⼝的情况下输⼝端是悬空的,它的电平是未知的⼝法保证的,上拉电阻就是为了保证⼝信号输⼝时输⼝端的电平为⼝电平。

下拉电阻它是为了保证⼝信号输⼝时输⼝端的电平为低电平。

⼝般来说,需要区分这个GPIO⼝⼝于输⼝还是输出。

GPIO模式详解

GPIO模式详解

GPIO模式详解GPIO是General Purpose Input/Output的缩写,中文意思为通用输入输出引脚。

它是一种通用的硬件接口,可以用于连接外部设备和微控制器或单片机。

GPIO在许多嵌入式系统中都被广泛使用,例如树莓派等。

GPIO功能的实现方式有几种,其中最常见的是通过设置寄存器来控制GPIO的模式和状态。

下面将详细介绍GPIO的几种常见模式。

1. 输入模式(Input Mode):GPIO引脚在输入模式下接收外部信号,可以监测外部信号的状态。

输入模式通常用于外部设备的传感器信号读取。

在输入模式下,可以设置GPIO引脚为上拉输入(Pull-up Input)或下拉输入(Pull-down Input),以防止输入信号漂移。

2. 输出模式(Output Mode):GPIO引脚在输出模式下可以向外部设备发送信号。

输出模式通常用于控制外部设备的电平或状态。

在输出模式下,可以设置GPIO引脚为开漏输出(Open Drain Output)或推挽输出(Push-pull Output),用于适应不同的外部设备。

3. 仿真模式(Analog Mode):GPIO引脚在仿真模式下可以实现模拟信号输入和输出。

在一些特定的应用中,需要使用GPIO引脚来进行模拟信号的输入和输出,例如连接模拟传感器或驱动模拟设备。

4. 复用模式(Alternate Function Mode):GPIO引脚在复用模式下可以实现多种不同的功能,通常用于连接外部设备的特定功能接口。

例如,一些GPIO引脚可以被设置为串行通信接口(如SPI、I2C、UART等)的引脚,以便与外部设备进行通信。

根据不同的芯片和硬件平台,GPIO的模式实现方式有所不同。

有些芯片需要通过设置特定的寄存器来配置GPIO的模式和状态,其他一些芯片则通过使用特定的库函数或驱动程序来操作GPIO。

此外,GPIO的模式还包括一些其他的特性,例如中断功能、输入输出速度控制、上下拉电阻的选择等。

上拉输入、下拉输入、浮空输入、模拟输入的区别

上拉输入、下拉输入、浮空输入、模拟输入的区别

上拉输入、下拉输入、浮空输入、模拟输入的区别(转)以及上拉输入、下拉输入、浮空输入、模拟输入的区别最近在看数据手册的时候,发现在Cortex-M3里,对于GPIO的配置种类有8种之多:(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 复用推挽输出对于刚入门的新手,我想这几个概念是必须得搞清楚的,平时接触的最多的也就是推挽输出、开漏输出、上拉输入这三种,但一直未曾对这些做过归纳。

因此,在这里做一个总结:推挽输出:可以输出高,低电平,连接数字器件; 推挽结构一般是指两个三极管分别受两互补信号的控制,总是在一个三极管导通的时候另一个截止。

高低电平由IC的电源低定。

推挽电路是两个参数相同的三极管或MOSFET,以推挽方式存在于电路中,各负责正负半周的波形放大任务,电路工作时,两只对称的功率开关管每次只有一个导通,所以导通损耗小、效率高。

输出既可以向负载灌电流,也可以从负载抽取电流。

推拉式输出级既提高电路的负载能力,又提高开关速度。

详细理解:如图所示,推挽放大器的输出级有两个“臂”(两组放大元件),一个“臂”的电流增加时,另一个“臂”的电流则减小,二者的状态轮流转换。

对负载而言,好像是一个“臂”在推,一个“臂”在拉,共同完成电流输出任务。

当输出高电平时,也就是下级负载门输入高电平时,输出端的电流将是下级门从本级电源经VT3拉出。

这样一来,输出高低电平时,VT3 一路和 VT5 一路将交替工作,从而减低了功耗,提高了每个管的承受能力。

又由于不论走哪一路,管子导通电阻都很小,使RC常数很小,转变速度很快。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

上拉输入、下拉输入、浮空输入、模拟输入的区别(转)
以及上拉输入、下拉输入、浮空输入、模拟输入的区别
最近在看数据手册的时候,发现在Cortex-M3里,对于GPIO的配置种类有8种之多:
(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 复用推挽输出
对于刚入门的新手,我想这几个概念是必须得搞清楚的,平时接触的最多的也就是推挽输出、开漏输出、上拉输入这三种,但一直未曾对这些做过归纳。

因此,在这里做一个总结:
推挽输出:可以输出高,低电平,连接数字器件; 推挽结构一般是指两个三极管分别受两互补信号的控制,总是在一个三极管导通的时候另一个截止。

高低电平由IC的电源低定。

推挽电路是两个参数相同的三极管或MOSFET,以推挽方式存在于电路中,各负责正负半周的波形放大任务,电路工作时,两只对称的功率开关管每次只有一个导通,所以导通损耗小、效率高。

输出既可以向负载灌电流,也可以从负载抽取电流。

推拉式输出级既提高电路的负载能力,又提高开关速度。

详细理解:
如图所示,推挽放大器的输出级有两个“臂”(两组放大元件),一个“臂”的电流增加时,另一个“臂”的电流则减小,二者的状态轮流转换。

对负载而言,好像是一个“臂”在推,一个“臂”在拉,共同完成电流输出任务。

当输出高电平时,也就是下级负载门输入高电平时,输出端的电流将是下级门从本级电源经VT3拉出。

这样一来,输出高低电平时,VT3 一路和 VT5 一路将交替工作,从而减低了功耗,提高了每个管的承受能力。

又由于不论走哪一路,管子导通电阻都很小,使RC常数很小,转变速度很快。

因此,推拉式输出级既提高电路的负载能力,又提高开关速度。

开漏输出:输出端相当于三极管的集电极. 要得到高电平状态需要上拉电阻才行. 适合于做电流型的驱动,其吸收电流的能力相对强(一般20ma以内).
开漏形式的电路有以下几个特点:
1. 利用外部电路的驱动能力,减少IC内部的驱动。

当IC内部MOSFET导通时,驱动电流是从外部的VCC流经R pull-up ,MOSFET到GND。

IC内部仅需很下的栅极驱动电流。

2. 一般来说,开漏是用来连接不同电平的器件,匹配电平用的,因为开漏引脚不连接外部的上拉电阻时,只能输出低电平,如果需要同时具备输出高电平的功能,则需要接上拉电阻,很好的一个优点是通过改变上拉电源的电压,便可以改变传输电平。

比如加上上拉电阻就可以提供TTL/CMOS电平输出等。

(上拉电阻的阻值决定了逻辑电平转换的沿的速度。

阻值越大,速度越低功耗越小,所以负载电阻的选择要兼顾功耗和速度。


3. OPEN-DRAIN提供了灵活的输出方式,但是也有其弱点,就是带来上升沿的延时。

因为上升沿是通过外接上拉无源电阻对负载充电,所以当电阻选择小时延时就小,但功耗大;反之延时大功耗小。

所以如果对延时有要求,则建议用下降沿输出。

4. 可以将多个开漏输出的Pin,连接到一条线上。

通过一只上拉电阻,在不增加任何器件的情况下,形成“与逻辑”关系。

这也是I2C,SMBus等总线判断总线占用状态的原理。

补充:什么是“线与”?:
在一个结点(线)上, 连接一个上拉电阻到电源 VCC 或 VDD 和 n 个 NPN 或 NMOS 晶体管的集电极 C 或漏极 D, 这些晶体管的发射极 E 或源极 S 都接到地线上, 只要有一个晶体管饱和, 这个结点(线)就被拉到地线电平上. 因为这些晶体管的基极注入电流(NPN)或栅极加上高电平(NMOS),晶体管就会饱和, 所以这些基极或栅极对这个结点(线)的关系是或非 NOR 逻辑. 如果这个结点后面加一个反相器, 就是或 OR 逻辑.
其实可以简单的理解为:在所有引脚连在一起时,外接一上拉电阻,如果有一个引脚输出为逻辑0,相当于接地,与之并联的回路“相当于被一根导线短路”,所以外电路逻辑电平便为0,只有都为高电平时,与的结果才为逻辑1。

关于推挽输出和开漏输出,最后用一幅最简单的图形来概括:
该图中左边的便是推挽输出模式,其中比较器输出高电平时下面的PNP三极管截止,而上面NPN三极管导通,输出电平VS+;当比较器输出低电平时则恰恰相反,PNP三极管导通,输出和地相连,为低电平。

右边的则可以理解为开漏输出形式,需要接上拉。

浮空输入:对于浮空输入,一直没找到很权威的解释,只好从以下图中去理解了
由于浮空输入一般多用于外部按键输入,结合图上的输入部分电路,我理解为浮空输入状态下,IO的电平状态是不确定的,完全由外部输入决定,如果在该引脚悬空的情况下,读取该端口的电平是不确定的。

上拉输入/下拉输入/模拟输入:这几个概念很好理解,从字面便能轻易读懂。

复用开漏输出、复用推挽输出:可以理解为GPIO口被用作第二功能时的配置情况(即并非作为通用IO口使用)
最后总结下使用情况:
在STM32中选用IO模式
(1)浮空输入_IN_FLOATING ——浮空输入,可以做KEY识别,RX1
(2)带上拉输入_IPU——IO内部上拉电阻输入
(3)带下拉输入_IPD—— IO内部下拉电阻输入
(4)模拟输入_AIN ——应用ADC模拟输入,或者低功耗下省电
(5)开漏输出_OUT_OD ——IO输出0接GND,IO输出1,悬空,需要外接上拉电阻,才能实现输出高电平。

当输出为1时,IO口的状态由上拉电阻拉高电平,但由于是开漏输出模式,这样IO口也就可以由外部电路改变为低电平或不变。

可以读IO输入电平变化,实现C51的IO双向功能
(6)推挽输出_OUT_PP ——IO输出0-接GND, IO输出1 -接VCC,读输入值是未知的(7)复用功能的推挽输出_AF_PP ——片内外设功能(I2C的SCL,SDA)
(8)复用功能的开漏输出_AF_OD——片内外设功能(TX1,MOSI,MISO.SCK.SS)
STM32设置实例:
(1)模拟I2C使用开漏输出_OUT_OD,接上拉电阻,能够正确输出0和1;读值时先
GPIO_SetBits(GPIOB, GPIO_Pin_0);拉高,然后可以读IO的值;使用
GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_0);
(2)如果是无上拉电阻,IO默认是高电平;需要读取IO的值,可以使用带上拉输入_IPU 和浮空输入_IN_FLOATING和开漏输出_OUT_OD;。

相关文档
最新文档