一、基础知识介绍
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口多个功能的其中一种