目录
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口无输入时电平始终为高电平或低电平。