一、基础知识介绍

GPIO是什么呢,它的相关寄存器又怎么设置呢,它有哪些工作模式呢,我们一起了解了解吧!

1、GPIO是什么

GPIO为通用的输入输出端口,其端口可通过程序配置成输入或输出【输出的高低电平也通过程序配置】

tips:引脚和GPIO不完全相同,STM32的部分引脚做GPIO使用,部分是电源引脚/复位引脚/启动模式引脚/晶振引脚/调试下载引脚

2、GPIO引脚个数

STM32F429中,PA~PH每组有16个IO,PI只有PI0~PI11个引脚的IO口,一共有16*8+12个引脚,即140个引脚。

3、复用

没有复用,则引脚组1和引脚组2分别控制IO口控制电路和串口控制电路;若复用则是通过开关控制分别控制IO控制电路和串口控制电路。

二、GPIO工作模式

1、工作模式

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

输出模式(带上下拉): 开漏输出、开漏复用功能、推挽式输出、推挽式复用

四种最大输出速度(可配置IP口):2MHZ(低速)、25MHZ(中速)、50MHZ(快速)、100MHZ(高速)

例如:

开漏输出模式 【适合做电流型的驱动,其吸收电流的能力相对强】

当CPU写入1时,N-MOS会截至,对IO端口无影响,如果需要IO口为高电平则需要接一个低上拉电阻使之输出高电平;当CPU写入0时,则会使IO端口输出低电平;

推挽输出模式(连接数字器件)

 当写入0时,P-MOS取反后会变为1,而N-MOS会为0,于是P-MOS管截止,N-MOS管导通接地,于是输出低电平;

 当写入1时,P-MOS取反后会变为0,而N-MOS为1,于是N-MOS截止,P-MOD接Vdd,于是输出高电平;

 2、上电复位工作状态

上电复位以后,GPIO默认为输入浮空状态,部分特殊功能引脚为特定状态

注意:复位以后,调试引脚处于复用功能上拉/下拉的状态,而非作为IO口使用,要使用需要配置

【PA15、PA14、PA13、PB4、PB3】

三、GPIO的寄存器设置

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

 

注意:每组IO口由十个寄存器组成

1、端口模式寄存器

 每个小组代表一个IO口,通过设置16个小组里面的每一组来设置每一个IO口的端口

2、端口输出类型寄存器

 设置0~15低十六位,高十六位保留不使用

3、端口输出速度寄存器

4、端口上拉/下拉寄存器 

5、端口输入数据寄存器

 

 r为1表示该端口输入的数据值为1,为0表示该端口输入的数据值为0;只使用低16位、高16位仍然保留 ;

6、端口置位/复位寄存器

 该寄存器为了单独赋值某一位但是不会影响其他位数;如果没有BSRR寄存器,需要通过设置IDR寄存器,一次性将所有位数读出再写入;

BSRR的值最终还是会映射到ODR上

7、复用功能寄存器

分为高位AFRH和低位AFRL,分别控制8个IO口

 通过每个IO口四位AFSELy的选择,设置每个IO口多个功能的其中一种

 

 

                                                         

物联沃分享整理
物联沃-IOTWORD物联网 » 深入了解GPIO基础知识

发表评论