• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

STM32的GPIO口的几种输入输出模式的区别

勇哥来巡山 2018-10-28 浏览量:1487
STM32的GPIO口的几种输入输出模式的区别
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 输入模式
        -输入浮空(GPIO_Mode_IN_FLOATING)
        -输入上拉(GPIO_Mode_IPU)

        -输入下拉(GPIO_Mode_IPD)

        -模拟输入(GPIO_Mode_AIN)

    输出模式

        -开漏输出(GPIO_Mode_Out_OD)

        -开漏复用功能(GPIO_Mode_AF_OD)

        -推挽式输出(GPIO_Mode_Out_PP)

        -推挽式复用功能(GPIO_Mode_AF_PP)

    原文:https://blog.csdn.net/baidu_37366055/article/details/80060962

    • 发布于 2018-10-28
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:11
  • 一共就四中模式吧,1复用,2输入,3输出,4模拟。就这四种。输入和输出就比较好理解了,就是普通IO口的数据输入输出功能。复用是将某一个引脚连接到单片机内部的某个模块上,比方说是iic模块上。模拟模式只能输入模拟信号,这个模式是AD转换使用的。当选择为模拟模式的时候,单片机会将引脚内部的触发器个隔离,以便模拟信号顺利输入到内部。
    • 发布于2018-10-28
    • 举报
    • 评论 0
    • 0
    • 0

  • 8种输入输出状态,对应8种电路结构改变http://www.51hei.com/bbs/dpj-107968-1.html
    • 发布于2018-10-28
    • 举报
    • 评论 0
    • 0
    • 0

  • 8种状态,输入4种。输出4种,主要就是上拉下拉,高阻,浮空,开漏,推挽,复用,
    • 发布于2018-10-28
    • 举报
    • 评论 0
    • 0
    • 0

  • 输入四种,模拟,上拉,下拉,浮空

    输出四种,开漏,推挽,复用开漏,复用推挽

    • 发布于2018-10-28
    • 举报
    • 评论 0
    • 0
    • 0

  • 勇哥来抽奖提问啦!

    标准的就是4类型输入(浮空、上拉、下拉和模拟输入),4类型输出(开漏、开漏复用、推挽、推挽复用)

    • 发布于2018-10-29
    • 举报
    • 评论 0
    • 0
    • 0

  • STM32的输入模式分上拉 下拉 模拟 浮空输入,输出分开漏 推挽,复用推挽 复用开漏。

    • 发布于2018-10-30
    • 举报
    • 评论 0
    • 0
    • 0

  • 输入模式

        -输入浮空(GPIO_Mode_IN_FLOATING)

        -输入上拉(GPIO_Mode_IPU)

        -输入下拉(GPIO_Mode_IPD)

        -模拟输入(GPIO_Mode_AIN)

    输出模式

        -开漏输出(GPIO_Mode_Out_OD)

        -开漏复用功能(GPIO_Mode_AF_OD)

        -推挽式输出(GPIO_Mode_Out_PP)

        -推挽式复用功能(GPIO_Mode_AF_PP)

    推挽电路是两个参数相同的三极管或 MOSFET以推挽方式存在于电路中各负责正负半周的波形放大任务电路工作时,两只对称的功率开关管每次只有一个导通,所以导通损耗小、效率高。输出既可以向负载灌电流,也可以从负载抽取电流。推拉式输出级既提高电路的负载能力,又提高开关速度。   

    开漏输出:输出端相当于三极管的集电极.  要得到高电平状态需要上拉电阻才行.  适合于做电流型的驱动其吸收电流的能力相对强(一般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。   

    由于浮空输入一般多用于外部按键输入,结合图上的输入部分电路,我理解为浮空输入状态下,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的SCLSDA)   
    (8)复用功能的开漏输出_AF_OD——片内外设功能(TX1MOSIMISO.SCK.SS)    
    STM32设置实例:   
    (1)模拟I2C使用开漏输出_OUT_OD,接上拉电阻,能够正确输出 0和1;读值时先 GPIO_SetBits(GPIOB  GPIO_Pin_0);拉高,然后可以读 IO 的值;使用GPIO_ReadInputDataBit(GPIOBGPIO_Pin_0);   
    (2)如果是无上拉电阻,IO默认是高电平;需要读取 IO的值,可以使用带上拉输入_IPU 和浮空输入_IN_FLOATING和开漏输出_OUT_OD;


    • 发布于2018-10-30
    • 举报
    • 评论 0
    • 0
    • 0

  • STM32的8种GPIO输入输出模式详细分析的资料li里可以详细看到

    (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  复用推挽输出 


    • 发布于2018-10-30
    • 举报
    • 评论 0
    • 0
    • 0

  • 输入4种:浮空、上拉、下拉、模拟输入

    输出4种:开漏、开漏复用、推挽、推挽复用

    • 发布于2018-10-31
    • 举报
    • 评论 0
    • 0
    • 0

  • 常用的就是推挽输出,开漏输出,输入一般用到,浮空输入,上下拉输入
    • 发布于2018-11-25
    • 举报
    • 评论 0
    • 0
    • 0

  • 根据你的输出功能不同,一般都是用推挽输出和开漏输出,输入就浮空输入
    • 发布于2018-12-09
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

STM32的GPIO口的几种输入输出模式的区别