如何理解STM32中的GPIO的四种输入和四种输出

 前言

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

目录

 前言

通用输入模式

浮空输入

上拉输入

下拉输入

通用输出模式

推挽输出

开漏输出

复用功能模式

复用输出模式

模拟输入模式


通用输入模式

在通用输入模式下,输出驱动电路被禁止,输出通道对I/O引脚的状态无影响。在输入通道上,施密特触发器被打开,从引脚输入的信号经过施密特触发器整形后,被送入输入寄存器(IDR)I/O引脚的状态在每个APB2时钟周期被采样,采样数据送入输入寄存器。

通过配置输入通道上的上拉及下拉开关,可以设置GPIO的工作浮空、上拉及下拉模式。如图1所示为GPIO结构图。

  图1        GPIO结构图

浮空输入

浮空输入需要同时断开上拉电阻开关和下拉电阻的开关。此时,在没有接输入信号的时候,I/O口的电平会处于一个不确定的值,电平会处于跳变的状态,一会高,一会低。只有当输入一个高/低电平时,I/O口的状态才会被确定下来。

上拉输入

当我们闭合上拉电阻开关,断开下拉电阻的开关时,也就是上拉通路导通。此时,如果I/O不接外设,上拉电阻相当于不存在,此时I/O口的电位就被钳制在VDD,于是I/O口呈现高电平。

下拉输入

同理,当我们断开上拉电阻开关,闭合下拉电阻的开关时,也就是下拉通路导通。此时,如果I/O不接外设,下拉电阻相当于不存在,此时I/O口的电位就被钳制在VSS,于是I/O口呈现低电平。

由于上拉及下拉电阻的阻值非常大,上拉及下拉电流较小,为弱上拉或弱下拉。因此在通用上拉或通用下拉输入模式下,I/O引脚开路时状态通过上拉或下拉固定下来,避免了浮空高阻状态下引脚引入的干扰。

通用输出模式

在通用输出模式下,来自内部总线的数据可以被直接写入输出数据寄存器(ODR),或者通过位置位/复位寄存器(BSRR)或复位寄存器(BRR)设置输出数据寄存器(ODR)的状态,该状态通过输出驱动电路输出到I/O引脚上。输出驱动电路可以被设置为推挽输出状态或开漏输出状态。

推挽输出

推挽输出就是利用两个不同的MOS管来实现的。在推挽输出状态下,当给栅极G一个高电平信号时,NMOS导通,PMOS截至,I/O引脚下拉为低电平,引脚电流为灌电流;当给栅极G一个低电平信号时,NMOS截至,PMOS导通,I/O引脚被强推为高低平,引脚电流为拉电流。因此,在通用推挽输出模式下,I/O引脚状态是由内部的推挽电路直接支配的。

推挽输出的优势是驱动力比较强。图2所示为推挽电路图。

图2        推挽电路

开漏输出

在开漏输出模式下,输出驱动电路(output dirver)的双MOS结构中,PMOS始终截至。当给栅极G一个高电平信号时,NMOS导通,I/O引脚输出低电平,承担灌电流;当给栅极G一个低电平信号时,NMOS截至,I/O引脚不受内部驱动电路的支配,处于高阻状态。如图3所示,这种电路的缺点是不可以输出高电平。

图3        开漏电路

图4所示为加上拉电阻的开漏电路。当给栅极G一个低电平信号时,NMOS截至,I/O引脚的状态由上拉电阻确定。

图4        加上拉电阻的开漏电路

这里需要注意的是:在开漏输出时I/O引脚真正的状态可能还取决于I/O引脚的外部连接状态。在一般情况下,通用输出采用推挽输出。但在IIC总线上,输出必须用开漏,原因是开漏输出可以实现“线与”的功能。这种输出模式的特点是在总线上可以挂载多个设备。

复用功能模式

在复用功能模式下,GPIO作为片内外设与外部交换信息的通道。有些片内外设需要输出数据,有些需要输入数据,有些则需要双向传输数据,因此,此时的GPIO应满足这些功能。

复用输出模式

在该模式下,输出驱动电路(output dirver)的信号源来自片内外设的输出,相应口的输出数据寄存器被断开。输出驱动电路可以设置为推挽输出状态或开漏输出状态,既复用推挽输出和复用开漏输出。

在输出模式下,输入通道上的施密特触发器处于导通状态,通道上的上拉电阻和下拉电阻断开,I/O引脚的状态在每个APB2时钟周期被采样,采样数据被送入输入数据寄存器(IDR),这样一来,输出的状态能够通过输入通道读取。

模拟输入模式

模拟量输入是一种特殊的复用功能模式。在这种模式下,需要把外部的模拟信号输入到内部的模数模块,输入时应避免其他信号对模拟信号的干扰。如图5所示为模拟输入模式下GPIO的结构图。

图5        模拟量输入模式下的GPIO结构图

在模拟输入模式下,数据输出通道被禁止,输入通道的上拉电阻和下拉电阻备被断开,施密特触发器关闭,I/O引脚上的模拟信号直接送到片上的模拟外设(通常就是ADC)。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jeimi电创

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值