GPIO是芯片和外界沟通的桥梁,GPIO有很多模式,不同的模式有不同的配置,应用于不同的场合。
STM32F103系列的I/O引脚共有8种工作模式,
输入模式有四种
- 浮空输入
- 上拉输入
- 下拉输入
- 模拟输入
其中输出模式有四种:
- 推挽输出
- 开漏输出
- 复用推挽输出
- 复用开漏输出
通过百问网对STM32F103GPIO部分的学习,这部分又深入了一些。
浮空输入
浮空输入是 STM32 复位之后 默认模式。浮空输入模式是相对于上拉或者下拉输入模式,浮空就是不上拉也不下拉。
I/O 引脚信号接入到施密特触发器的输入端,在每来一个APB1时钟脉冲就把输入端的信号传输到触发器的输出端,施密特触发器的输出端又是与输入数据
寄存器 (GPIOx_IDR)连通的,该数据就保存在输入数据寄存器内,寄存器本身就是一个存储单元(起到缓冲区效果),所以输入数据寄存器保存着 I/O 引脚电平。
此外,CPU 随时都可以读取寄存器数据,从而得知当前引脚状态。
上拉输入
打开了上拉电阻,其他都同浮空输入设置一样。
下拉输入
打开了下拉电阻,其他都同浮空输入设置一样。
模拟输入
不开上拉,不开下拉,关闭TTL肖特基触发器。
推挽通用输出模式
用输出模式就是作为普通用途的输出模式,比如简单地控制引脚输出高低
电平。
推挽输出把 PMOS 管和 NMOS 管都用上了,开漏输出只
用了 NMOS 管, PMOS 管完全不用。
开漏通用输出模式
GPIO 的输出是由一个 PMOS 管和一个 NMOS 管组合形成的反相器驱动。
开漏电路概念中的 “ 漏 ” 是指 MOS 管的漏极 (D) ,实际只是利用到 NMOS 管, PMOS
管在开漏模式下是没有用到的。
推挽复用功能输出模式
一个 I/O 引脚可以做为普通的 IO 接口,还可以做为其他外
设的特殊功能引脚,有些引脚可能有 4 、 5 种不同功能,这种现象就叫做复用。
引脚复用为特殊功能引脚,那引脚状态就由该外设决定。
开漏复用功能输出模式