stm32 GPIO端口的几种模式

以前只使用,没有详细理解过。现在回来做个

输入模式
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 推挽式复用功能

复用功能:内置外设是与I/O口共用引出管脚(不同的功能对应同一管脚)
STM32 所有内置外设的外部引脚都是与标准GPIO引脚复用的,如果有多个复用功能模块对应同一个引脚,只能使能其中之一,其它模块保持非使能状态。

他的兄弟:
重映射功能:复用功能的引出脚可以通过重映射,从不同的I/O管脚引出,即复用功能的引出脚位是可通过程序改变到其他的引脚上!

直接好处:PCB电路板的设计人员可以在需要的情况下,不必把某些信号在板上绕一大圈完成联接,方便了PCB的设计同时潜在地减少了信号的交叉干扰。
如:USART1: 0: 没有重映像(TX/PA9,RX/PA10); 1: 重映像(TX/PB6,RX/PB7)。
在这里插入图片描述

GPIO的8种模式
1.输入浮空
浮空的意思就是这个GPIO在做输入时并不上接或者下接其他器件,整个脚位呈高阻态。
一般不推荐悬空模式,此模式下引脚易受干扰。这种设置在数据传输时用的比较多。浮空最大的特点就是电压的不确定性,它可能是0V,也可能是VCC,还可能是介于两者之间的某个值(浮空一般用来做ADC输入用,这样可以减少上下拉电阻对结果的影响
初始化后的IO的电平:一个高阻态、电平不确定。
在这里插入图片描述

2.输入上拉(下拉)
上拉就是把点位拉高,比如拉到Vcc(GND)。上拉(下拉)就是将不确定的信号通过一个电阻嵌位在高电平(低电平)。电阻同时起到限流的作用。弱强只是上拉(下拉)电阻的阻值不同。根据STM32的数据手册,这个上拉电阻阻值介于30K~50K欧姆。

输入上拉初始化后电平:默认高电平,VDD开关闭合.
在这里插入图片描述
输入下拉初始化:默认低电平,Vss开关闭合。
在这里插入图片描述

3.模拟输入
模拟输入是指传统方式的输入,数字输入是输入PCM数字信号,即0,1的二进制数字信号,通过数模转换,转换成模拟信号,经前级放大进入功率放大器,功率放大器还是模拟的。
在这里插入图片描述

输出:
开漏特点最明显的一处是:本身只能输出低电平,本身只能输出低电平,本身只能输出低电平
所以这也成就的应用场景:以外接个上拉电阻来使得端口输出高电平。那么这个外接的电阻与电压计量范围就比较广泛了,可以是5V,3.3V等等局限性比较小。
开漏输出(GPIO_Mode_Out_OD)
网上的一些解释:

开漏输出:输出端相当于三极管的集电极,要得到高电平状态需要上拉电阻才行。适合于做电流型的驱动,其吸收电流的能力相对强(一般20mA以内)。开漏形式的电路有以下几个特点:
1、利用外部电路的驱动能力,减少IC内部的驱动。当IC内部MOSFET导通时,驱动电流是从外部的VCC流经上拉电阻、MOSFET到GND。IC内部仅需很小的栅极驱动电流。
2、一般来说,开漏是用来连接不同电平的器件,匹配电平用的,因为开漏引脚不连接外部的上拉电阻时,只能输出低电平,如果需要同时具备输出高电平的功能,则需要接上拉电阻,很好的一个优点是通过改变上拉电源的电压,便可以改变传输电平。比如加上上拉电阻就可以提供TTL/CMOS电平输出等。(上拉电阻的阻值决定了逻辑电平转换的速度。阻值越大,速度越低功耗越小,所以负载电阻的选择要兼顾功耗和速度。)
3、开漏输出提供了灵活的输出方式,但是也有其弱点,就是带来上升沿的延时。因为上升沿是通过外接上拉无源电阻对负载充电,所以当电阻选择小时延时就小,但功耗大;反之延时大功耗小。所以如果对延时有要求,则建议用下降沿输出。
4、可以将多个开漏输出连接到一条线上。通过一只上拉电阻,在不增加任何器件的情况下,形成“与逻辑”关系,即“线与”。可以简单的理解为:在所有引脚连在一起时,外接一上拉电阻,如果有一个引脚输出为逻辑0,相当于接地,与之并联的回路“相当于被一根导线短路”,所以外电路逻辑电平便为0,只有都为高电平时,与的结果才为逻辑1。
在这里插入图片描述

开漏复用功能(GPIO_Mode_AF_OD
在这里插入图片描述在这里插入图片描述

可在外部上拉相应的电压和电阻,实现较大的IO驱动能力

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

-推挽式复用功能(GPIO_Mode_AF_PP)
在这里插入图片描述

  • 0
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值