STM32之GPIO工作原理

我使用的是*STM32F103ZET6

GPIO基本结构

对于我使用的stm32型号,一共有7组IO口,这里IO口指的是IO端口;从GPIOA一直到GPIOG。
每一组端口有16位IO引脚,例如PA0到PA15;因此总共有16×7=11216\times7=112个IO引脚;查阅芯片手册的Pinout部分可以看到各个引脚的复用情况以及是否具有5V容忍功能
STM32之GPIO工作原理

GPIO工作方式

输入模式包含:

  1. 输入浮空
  2. 输入上拉
  3. 输入下拉
  4. 模拟输入

输出模式包含:

  1. 开漏输出
  2. 开漏复用
  3. 推挽输出
  4. 推挽复用

输入浮空

如图所示,上下拉电阻的模拟开关全部断开,输入信号经过施密特出发器变为波形平滑,电平稳定的 TTL信号,送入输入寄存器。CPU可查询输入寄存器状态。
STM32之GPIO工作原理

输入上拉

对于输入上拉的情况,STM32内部的上拉电阻起作用,即若选择此种模式,用万用表测不接任何负载的IO引脚时,是可以读到高电平3.3V的。当我们外接开关是,可以选用此种输入方式,当电平为低则说明开关按下。
STM32之GPIO工作原理

输入下拉

与输入上拉原理相通。
STM32之GPIO工作原理

模拟模式

与浮空的情况类似,只是此时是由ADC去读取输入信号,此信号作为模拟量输入给内部ADC模块。
STM32之GPIO工作原理

先写到这,有空再更…