STM32F4--GPIO端口模式&相关寄存器

一、GPIO端口8种模式

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

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

为什么要用带上拉或者下拉输入的模式呢?因为浮空模式时,在GPIO外部连接的电路未工作时,STM32读取的GPIO状态是不确定的,所以可以采用带上拉或者下拉输入的模式先给MCU一个确定的状态,当外部电路电平状态发生变化时,易于MCU的判断。这样可以增强MCU的抗干扰能力

3、浮空输入_IN_FLOATING:浮空(floating)就是逻辑器件的输入引脚即不接高电平,也不接低电平。浮空输入状态下,IO的电平状态是不确定的,完全由外部输入决定,如果在该引脚悬空的情况下,读取该端口的电平是不确定的。

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

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

6、开漏输出_OUT_OD:输出端相当于三极管的集电极。要得到高电平状态需要上拉电阻才行,适合于做电流型的驱动,其吸收电流的能力相对强(一般20mA以内)。一般开漏输出模式时,如果外部不接上拉电阻时,只能输出低电平,所以要想输出高电平必须要外接上拉电阻。这样做的有一个好处,可以用来匹配不同的电平信号,也就是用于不同电压的系统之间的通信;另外,因为要输出高电平需要有外部的上拉电阻,所以在进行通信时,通信的速度也受到上拉电阻阻值的影响,阻值小时,通信速度可以很快,阻值大时,通信速度变慢,但也不能为了通信速度把上拉电阻用的很小,也要注意在电阻很小时,功耗会变大,所以要平衡好这个度。
 

7.具有上拉或下拉功能的复用功能推挽_AF_PP

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

8.具有上拉或下拉功能的复用功能开漏_AF_OD

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

另外,所有IO口都可以作为中断输入

二、每组GPIO端口的寄存器包括:

STM32F4--GPIO端口模式&相关寄存器_第1张图片

 如果配置一个IO口需要2个位,那么刚好32位寄存器配置一组IO口16个IO口

 如果配置一个IO口只需要1个位,一般高16位保留
 BSRR寄存器32位分为低16位BSRRL和高16位BSRRH,BSRRL配置一组IO口的16个IO口的置位状态(1),BSRRH配置复位状态(0)。

你可能感兴趣的:(stm32,单片机)