一.GPIO简介
二. GPIO基本结构
寄存器是特殊的存储器,内核可用通过APB2总线对寄存器进行读写,寄存器每一位对应一个引脚。输出寄存器写1,对应引脚输出高电平;输入寄存器写1,则证明对应端口为高电平。其中寄存器只负责存储数据,驱动器用来驱动。
三. GPIO位结构
左边三个为寄存器,中间为驱动器,右侧为引脚
上面为输入部分,下面为输出部分
输入部分:
引脚处的两个保护二极管是用来对输入电压进行限幅的。
上面VDD为3.3V,下面接VSS为0V。
若电压高于VDD,电流流入VDD,电压低于VSS,从VSS汲取电流
分别接了上拉电阻和下拉电阻。
下面导通上面断开,就是下拉输出模式,是默认的低电平输入模式。
(https://www.bilibili.com/video/BV1ZU4y1Q7eo)
上面导通下面断开,就是上拉输出模式,是默认的高电平输入模式。
(https://www.bilibili.com/video/BV1W34y1579U)
两个都断开,就是浮空输入模式,此时引脚的输入电平容易受外界影响。
对输入电压进行调整。
输入电压高于某一阈值,则输出电压为高电平;
低于某一阈值,则输出电压为低电平。
只有信号高于上限或低于下限,输出才会发生变化
MOS相当于电子开关,通过信号来控制MOS的开和关,来控制引脚接到VDD还是VSS
推挽输出模式:
数据寄存器为1时,P-MOS关,N-MOS开,VDD供压,输出高电平。
数据寄存器为0时,P-MOS开,N-MOS关,VSS供压,输出低电平。
此时STM32对IO口有绝对控制权。
开漏输出模式:
P-MOS此时无效。
数据寄存器为1时,N-MOS断开,即输出断开
数据寄存器为0时,N-MOS导通,即输出低电平
可作为通信协议的驱动方式。
也可断开,在输出时外加上拉电阻来提高输出电压。
关闭模式:
引脚配置为输入时该系统关闭,引脚电平由外部信号控制
四.GPIO的八种工作模式
模拟输入:GPIO无效,引脚信号直接输入ADC(片上外设)。
复用开漏/推挽输出:寄存器和输出驱动器断开,由片上外设控制输出驱动器