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

2、下拉输入:就是把电压拉低,拉到GND。与上拉原理相似。

3、浮空输入:浮空(floating)就是逻辑器件的输入引脚即不接高电平,也不接低电平。由于逻辑器件的内部结构,当它输入引脚悬空时,相当于该引脚接了高电平。一般实际运用时,引脚不建议悬空,易受干扰。 通俗讲就是让管脚什么都不接,浮空着。

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

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

6、开漏输出:输出端相当于三极管的集电极. 要得到高电平状态需要上拉电阻才行. 适合于做电流型的驱动,其吸收电流的能力相对强(一般20mA以内).

7、复用输出:可以理解为GPIO口被用作第二功能时的配置情况(即并非作为通用IO口使用)。端口必须配置成复用功能输出模式(推挽或开漏)。


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

(1)GPIO_Mode_AIN 模拟输入---应用ADC模拟输入,或者低功耗下省电

(2)GPIO_Mode_IN_FLOATING 浮空输入---可以做KEY识别

(3)GPIO_Mode_IPD 下拉输入--- IO内部下拉电阻输入

(4)GPIO_Mode_IPU 上拉输入---IO内部上拉电阻输入

(5)GPIO_Mode_Out_OD 开漏输出---IO输出0接GND,IO输出1,悬空,需要外接上拉电阻,才能实现输出高电平。当输出为1时,IO口的状态由上拉电阻拉高电平,但由于是开漏输出模式,这样IO口也就可以由外部电路改变为低电平或不变。可以读IO输入电平变化,实现C51的IO双向功能
(6)GPIO_Mode_Out_PP 推挽输出---IO输出0-接GND, IO输出1 -接VCC,读输入值是未知的
(7)GPIO_Mode_AF_OD 复用开漏输出---片内外设功能(TX1,MOSI,MISO.SCK.SS)
(8)GPIO_Mode_AF_PP 复用推挽输出---片内外设功能(I2C的SCL,SDA)


1.推挽输出

可以输出高、低电平,连接数字器件;推挽结构一般是指两个三极管分别受两个互补信号的控制,总是在一个三极管导通的时候另一个截止。高低电平由IC的电源决定。
推挽电路是两个参数相同的三极管或MOSFET,以推挽方式存在于电路中,各负责正负半周的波形放大任务,电路工作时,两只对称的功率开关管每次只有一个导通,所以导通损耗小、效率高。输出既可以向负载灌电流,也可以从负载抽取电流。推拉式输出级既提高电路的负载能力,又提高开关速度。
2.开漏输出

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

2、一般来说,开漏是用来连接不同电平的器件,匹配电平用的,因为开漏引脚不连接外部的上拉电阻时,只能输出低电平,如果需要同时具备输出高电平的功能,则需要接上拉电阻,很好的一个优点是通过改变上拉电源的电压,便可以改变传输电平。比如加上上拉电阻就可以提供TTL/CMOS电平输出等。(上拉电阻的阻值决定了逻辑电平转换的速度。阻值越大,速度越低功耗越小,所以负载电阻的选择要兼顾功耗和速度。)

    3、开漏输出提供了灵活的输出方式,但是也有其弱点,就是带来上升沿的延时。因为上升沿是通过外接上拉无源电阻对负载充电,所以当电阻选择小时延时就小,但功耗大;反之延时大功耗小。所以如果对延时有要求,则建议用下降沿输出。
    4、可以将多个开漏输出连接到一条线上。通过一只上拉电阻,在不增加任何器件的情况下,形成“与逻辑”关系,即“线与”。可以简单的理解为:在所有引脚连在一起时,外接一上拉电阻,如果有一个引脚输出为逻辑0,相当于接地,与之并联的回路“相当于被一根导线短路”,所以外电路逻辑电平便为0,只有都为高电平时,与的结果才为逻辑1。

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

 

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


 3.浮空输入

对于浮空输入,一直没找到很权威的解释,只好从以下图中去理解了

 

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


由于浮空输入一般多用于外部按键输入,结合图上的输入部分电路,我理解为浮空输入状态下,IO的电平状态是不确定的,完全由外部输入决定,如果在该引脚悬空的情况下,读取该端口的电平是不确定的。
4.上拉输入/下拉输入/模拟输入

这几个概念很好理解,从字面便能轻易读懂。
5.复用开漏输出、复用推挽输出

可以理解为GPIO口被用作第二功能时的配置情况(即并非作为通用IO口使用)


关键字:STM32  GPIO  8种模式 引用地址:STM32关于GPIO的8种模式理解

上一篇:STM32时钟使能函数
下一篇:STM32学习笔记之RTC(实时时钟)和BKP(备份寄存器)

推荐阅读

全新亮点 新平台集成了安全子系统和软件生态系统,利用安全执行环境(SEE),为开发人员提供前所未有的安全功能。 LPC5500单核和双核100MHz Cortex®-M33微控制器(MCU),采用40nm闪存技术,面向大量不同的工业和物联网边缘应用。 i.MX RT600跨界处理器,搭载最高300/600MHz的Cortex-M33/数字信号处理器(DSP)内核,采用28nm FD-SOI技术,可在超低功...
STATUS EQU 3HFSR EQU 4HRB EQU 6HRC EQU 7HOPTIONA EQU 81HTRISB EQU 86HTRISC EQU 87HGENR0 EQU 053HGENR1 EQU 054HWD_RG EQU 055HDA_AG0 EQU 056H ;SEG0 SEG1DA_AG8 EQU 05EH ;SEG16 SEG17;.............................C ...
金秋10月,行业里最新出炉了两份物联网研究报告。一份是微软发布的《物联网信号(IoT Signals)》第二版;另一份是沃达丰发布的《物联网聚焦报告2020(IoT Spotlight Report 2020)》。 两份报告总共调研的物联网企业超过4600家,比较全面的呈现了全球物联网市场在今年这个特殊年份的走势。 本文将为你汲取报告中的精华内容。如果你对完整报告感兴趣...
1.什么是SDRAMSDRAM:Synchronous Dynamic Random Access Memory,同步动态随机存储器。同步是指其时钟频率和CPU前端总线的系统时钟相同,并且内部命令的发送与数据的传输都以它为基准;动态是指存储阵列需要不断的刷新来保证数据不丢失;随机是指数据不是线性依次存储,而是自由指定地址进行数据的读写。2.SDRAM内存芯片的内部结构2.1.逻辑Bank与芯片...

史海拾趣

问答坊 | AI 解惑

汇编语言程序设计[下载]

第1章    基础知识1.1    汇编语言及特点1.2    数据表示1.3    8086CPU和寄存器组1.4    存储器物理地址的形成 第2章  寻址方式和指令系统2.1  寻址方式2. ...…

查看全部问答∨

增值电信业监管水平亟待提升

增值电信业监管水平亟待提升 2006-7-18   自1993年国家向社会开放电话信息服务等5项增值电信业务以来,经过十多年的发展,增值电信业务市场保持了持续快速发展,市场规模不断扩大。到2005年底,全国累计颁发各种增值电信业务经营许可证达到16 ...…

查看全部问答∨

混合信号芯片设计中的温度分析

 本文描述了一种直接集成到芯片设计流程中的详细三维温度分析,介绍了这种温度分析如何帮助芯片设计师和架构师更好地掌握芯片内的温度梯度,以及温度梯度影响芯片性能的情况。…

查看全部问答∨

需要免费资源的请进

有需要资料或者有疑问的朋友,以及有好资料想和大家分享的朋友请来Q群17983715。主要针对IC初学者…

查看全部问答∨

在Hook的ZwCreateFile函数中读写注册表,加载该驱动重启失败

我Hook了ZwCreateFile,在里面读注册表,编译出来安装后,重启系统失败,查了一些资料,是不是跟ZwCreateFile运行的kernel mode或者user mode有关啊,应该怎么修改呢?…

查看全部问答∨

LINK : fatal error LNK1104: cannot open file 'mfcs42d.lib'?????求助!!!

刚装上EVC4.0+SP4,从PB5导出并安装了自己的SDK,然后在EVC建了一个简单的MFC Application,选择SDK后编译后就出现: LINK : fatal error LNK1104: cannot open file \'mfcs42d.lib\' 我查看了我安装的SDK目录下有这个文件,而且在EVC的Include ...…

查看全部问答∨

win 2000 不能识别我们的 USB 设备

我们在做一个USB设备的开发,硬件已经成形了。 但是,问题出在: 将该设备插入到XP系统下,系统的资源管理器里边会出现USB的2个未知设备,(我们这一个设备里,有2个Interface) 看每个的属性,PID值也和我们硬件里边写 的一样,然后安装驱动 ...…

查看全部问答∨

请教大侠--STM32启动代码分析

能否讲解一下startup_stm32f10x_cl.s启动代码含义,谢谢! 我现在看反汇编如下 0x08000000 0678      LSLS     r0,r7,#25 0x08000002 2000      MOVS    &nbs ...…

查看全部问答∨

用IAR for MSP430的JTAG口仿真,出现了问题,求高手指点

我用的是利达尔的MSP430F2274开发板,它上面直接就有JTAG口仿真,然后我就买了一块并口卡插上去,电源灯会亮,但是一直都不能仿真调试,我想是设置的问题,因为并口卡我用它来下载到ARM7上是没问题的,所以在这里求高手指点。 这个就是错误提示。…

查看全部问答∨

出YC2440裸板

本帖最后由 ddllxxrr 于 2016-1-7 16:58 编辑 …

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved