GIPO是通用输入输出口,有8中GPIO(输入输出模式),每个引脚的电平是0v~3.3v,部分引脚可容忍5v。
1.GPIO基本结构
APB2为外设总线:
寄存器是一种特殊的储存器,内核可以通过APB2总线对寄存器进行读写,这样我们就实现了输出电平与输入电平的功能,值得注意的是寄存器的每一位对应着一个引脚,如果输出寄存器是写1,那么对应的引脚就是高电平,写0,就是输出低电平,由于STM32是32的单片机,所以STM32内部的寄存器都是32,但是这个端口只有16个引脚,所以这个寄存器的另外16位没有对应的引脚,所以这个寄存器只有低16位有用,高16位没有用。
驱动器是增强信号的功能的。
2.GPIO位结构
驱动器:
总线:
如果输入电压比3.3v高,上方二极管导通,输入电压直接进入VDD而不进入内部电路,起到保护电路作用。如果比0v还要低,下方二极管导通,保护电路,避免电压进入内部电路。
4.GPIO模式
性质:数字输入
模式1:浮空输入
上方与下方都不导通,可读取引脚电平,但是电平不确定
模式2:上拉输入
可读取引脚电平,内部连接上拉电阻,悬空时默认高电平
模式3:下拉输入
可读取引脚电平,内部连接下拉电阻,悬空时默认低电平
性质:模拟输入
模拟输入
GPIO无效,引脚直接进入ADC
肖特基触发器:
肖特基触发器可以将模拟信号转变成数字信号
比如我们有这么一段信号:
模拟信号
经过肖特基触发器之后,变成:
性能:数字输入
模式:开漏输出
输出控制主要可以有两种方式进行控制,一种是片上外设,而是通过修改输出数据寄存器来进行输出控制。
修改输出寄存器的方式:
GPIO输入功能介绍:
位设置/清除寄存器(通过位设置或者清除寄存器)
位设置寄存器使用方法:
假如我们要将一个位设置为1,那我们怎么用位设置寄存器勒?
我们可以将我们要设置的为置1,其他写0,比如0100000000000共16位。
位清除寄存器使用方法:
假如我们要将一个引脚设置为低电平,置0,那么我们怎么使用输出控制勒?
答:我们可以通过位清除寄存器来设置,我们将要设置的位写1,比如10000000000共16位,不清除的位写0。
接下来,输出控制接上两个mos管。
一个P-mos,一个N-mos管
MOS管就相当于电子开关