蓝桥杯嵌入式stm32G431——GPIO手册及相关寄存器

目录

GPIO介绍

数据手册查找GPIO的功能

数据手册配置GPIO的功能

微控制器参考手册指定IO口功能

GPIO内部介绍

先看输出部分

普通IO输出操作:

外设输出操作:

复用功能输出:

 输入部分

了解关于保护二极管这部分

了解关于上拉下拉电阻这

模拟输入输出部分

GPIO相关寄存器

GPIO8种模式的介绍

浮空输入模式

寄存器的配置

上拉输入模式

寄存器配置

下拉输入模式

寄存器配置

模拟输入模式

寄存器配置

开漏输出模式

寄存器配置

输出类型寄存器

输出速度寄存器

推挽输出模式

寄存器配置

复用推挽输出模式

寄存器配置

复用开漏输出模式

寄存器配置

寄存器的讲解

模式选择寄存器

输出类型寄存器

输出速率寄存器

上下拉电阻寄存器

输入数据寄存器

输出数据寄存器

置位复位寄存器

配置锁定寄存器

复用功能低8位选择寄存器

复用模式高8位选择寄存器

寄存器地址


GPIO介绍

由图可以看出,共有64个引脚,每个引脚不仅仅可以输出1与0(低电平,高电平)。还有其他的功能,比如串口的RTX。那我们如何知道这个引脚的其他功能是什么呢?

这就需要介绍数据手册了(又见面了,数据手册)。

数据手册查找GPIO的功能

位置

其中,只列一小部分,太多了

这个部分手册内容就是在查找引脚复用功能的。

就比如,我们需要配置TIM1定时器1。这就需要查找定时器1在哪个引脚之上。如图所示,就会发现定时器1在PC13上存在。就可找到PC13口来配置。

那我们现在又遇到了个问题,就是如何配置才能让PC13IO口成为我们要的功能呢?

这就又需要查找数据手册

数据手册配置GPIO的功能

位置

部分内容

这张图就可以看到每个IO口相对应的复用功能。

打个比方,如果我们需要用到(PB10,AF7)的串口3发送功能。我们就需要将PB10指定为复用功能AF7。

那么如何将PB10指定为AF7呢?只用PB10=AF7??

微控制器参考手册指定IO口功能

此刻为调用寄存器,所以查找微控制器参考手册。

位置

内容

复用功能低位配置就是配置0~7这些IO口,而8~15这些IO口为复用功能高位配置。

如果此时GPIOx_AFRL中x=A,拿第一张图的AFSEL0[3:0]就是代表PA0口。

而如果我们需要将PA0口设置位复用功能1,我们就只需将AFSEL0中的四位配置为 0001 这就对应AF1。

GPIO内部介绍

先看输出部分

普通IO输出操作

当写操作发送一个1时,他会通过输出数据寄存器到选择器,选择器选择输出写操作数据后,发送数据给输出控制,比如发送1。取反后变为0,发送给P Mos与N Mos(两者都会发送),但P Mos存在一个取反操作。使得P Mos为1,N Mos为0。当P Mos为一后,输出电路就会接上VDD,发送高电平。

相反,如果输出数据寄存器发送为0,那么P Mos为0,N Mos为1。输出电路就会接上VSS,发送低电平。

外设输出操作:

外设(比如红外传感,超声波测距仪等),它们可以直接发送1或0信号。

复用功能输出:

这就需要将选择器选择复用功能输出,这个部分可以模仿串口的TDX(发送数据),就是短时间内发送大量的1或0信号。

 输入部分

主要看这个部分

了解关于保护二极管这部分

如图所示,保护二极管的方向为自下往上,其中VDD_FT为3.3伏,VSS为0伏

作用:保护电路,如果此时有一段5V电流从IO口流入,但电路的可承受最大电压为3.3V。这就需要VDD_FT去分流部分电流,使得5V电流分流后为3.3V电流。

同理,如果此时有一段-5V电流从IO口流入,但电路的可承受最低电压为0V。这就需要VSS去分流部分电流,使得-5V电流分流后为0V电流。

了解关于上拉下拉电阻这

我们可以假设,如果此刻在上拉电阻与下拉电阻都不接时,此时输入读进来的电平为多少?

如果此刻的IO什么都不输入,但会有微小电流影响,可能一会为正电压,一会为负电压,这就叫做电平跳变。这个时候就需要接上上下拉电阻。

作用:为防止电平跳变。使得当IO口无输入时电平始终为高电平或低电平。

模拟输入输出部分

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值