南有乔木z

随心所欲,想写啥就写啥。

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

端口概述

  在STM32中,每个I/O端口可以由软件配置成为输入/输出模式。复位期间或刚复位后,I/O端口被配置成浮空输入模式。所有的GPIO引脚有一个内部弱上拉和弱下拉,当配置为输入时,

它们可以被激活或者是断开。

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

  AF功能:对于复用功能,端口必须配置成复用功能输出模式。当软件把一个GPIO脚配置成复用输出功能,但是外设没有被激活,它的输出将不确定。还可以进行软件重映射I/O复用功能。

输入模式

  四种输入模式:上拉输入、下拉输入、浮空输入、模拟输入。

       

以上电路由右至左看:

       I/O即GPIO的外接部分;

  在引脚上下连接保护二极管,当输入电压高于VDD时,上方二极管导通吸收此高电压;当引脚电压低于VSS时,下方的二极管导通,防止不正常电压引入芯片导致芯片烧毁。  尽管STM32芯片内部有这样的保护,但并不意味着STM32的引脚就无所不能,如果直接将引脚连接大功率器件,比如电机,那么要么电机不转,要么烧坏芯片。如果要驱动一些大功率器件,必须要加大功率及隔离电路驱动。也可以说STM32引脚是用来做控制,而不是做驱动使用的。

  从图中可以看到,上拉和下拉电阻上都有一个开关,通过配置上下拉电阻开关,可以控制引脚的默认状态电平。当开启上拉时引脚默认电压为高电平,开启下拉时,引脚默认电压为低电平,这样就可以消除引脚不定状态的影响。当然也可以将上拉和下拉的开关都关断,这种状态我们称为浮空模式,一旦配置成这个模式,引脚的电压是不确定的,如果用万用表测量此模式下管脚电压时会发现只有 1 点几伏,而且还不时改变,所以一般情况下我们都会给引脚设置成上拉或者下拉模式,使它有一个默认状态。STM32 上下拉及浮空模式的配置是通过GPIOx_CRL和GPIOx_CRH寄存器控制的,大家在《STM32F1xx中文参考手册》查阅。STM32内部的上拉其实是一个弱上拉,也就是说通过此上拉电阻输出的电流很小,如果想要输出一个大电流,那么就需要外接上拉电阻了。

  模拟输入配置:上下拉电阻被禁止。因为经过施密特触发器的信号只有1/0两种状态,信号源不经过触发器直接进行输入。

输出模式

  四种输出模式:推挽输出、开漏输出、复用推挽输出、复用开漏输出。

 

  推挽输出又可以叫做推拉输出,顾名思义,推挽输出能输出高低两种电平:

  1. 当内部输出为高电平时(STM32内部,P-MOS前输入电压被反向了),被推到电源电压,此时输出电流到负载;此时P-MOS导通,N-MOS截止。

      

  2. 当输出为低电平时(STM32内部,P-MOS前输入电压被反向了),被拉接到地,此时从负载灌入电流;此时P-MOS截止,N-MOS导通。

        

 

 使其负载能力和开关速度都比普通的方式有很大的提高。

 

  在开漏输出模式时,不论输入是高电平还是低电平,P-MOS 管总处于关闭状态。当给这个单元电路输入低电平时(反向了),N-MOS 管导通,输出即为低电平。当输入高电平时,N-MOS 管截止,这个时候引脚状态既不是高电平,又不是低电平,我们称之为高阻态。如果想让引脚输出高电平,那么引脚必须外接一个上拉电阻,由上拉电阻提供高电平。在开漏模式时,对输入数据寄存器的读访问可得到I/O状态。

 

  复用功能输出:当I/O引脚被配置成为复用输出时,内置的外设的信号驱动输出缓冲器被打开,即由片内外设提供输出功能。所以当使用某引脚的复用功能时,一定要打开片上外设、复用时钟,且将使用复用的推挽或者开漏输出。

   由上图可知,输出电平由输出数据寄存器决定,可以通过修改GPIOx_BSRR来影响电路的输出。

引脚配置

  STM32的每个外设引脚配置情况可见《STM32中文参考手册》。包括TIM/USART/SPI/I2S/I2C/BxCAN/USB/USB OTG/SDIO/ADC DAC/FSMC等。

posted on 2018-03-16 16:40  南有乔木z  阅读(2939)  评论(0编辑  收藏  举报