STM32 GPIO
参考 STM32-GPIO介绍_KevinFlyn的博客-CSDN博客_stm32gpio是什么
GPIO通用输入输出端口(General-purpose input/output)
一、GPIO工作原理
1.GPIO工作模式
-
浮空输入 编码器,PWM捕获
-
上拉输入 按键、UART(Rx)
默认为高
-
下拉输入
-
模拟输入 ADC
-
开漏输出 IIC
使用场合:一般用在电平不匹配的场合,如需要输出5V的高电平。有线与特性
使用方法:就需要再外部接一个上拉电阻,电源为5V,把GPIO设置为开漏模式, 当输出高组态时,由上拉电阻和电源向外输出5V的电压。
-
推挽输出 一般输出
使用方法:直接使用
输出电平:推挽输出的低电平是0V,高电平是3.3V。
-
复用开漏输出 硬件IIC
-
复用推挽输出 PWM输出、SPI、UART(Tx)
外设的GPIO配置见【STM32F10XXX参考手册8.1.11章节】
typedef enum { GPIO_Mode_AIN = 0x0, //模拟输入 GPIO_Mode_IN_FLOATING = 0x04, //浮空输入 GPIO_Mode_IPD = 0x28, //下拉输入 GPIO_Mode_IPU = 0x48, //上拉输入 GPIO_Mode_Out_OD = 0x14, //开漏输出 GPIO_Mode_Out_PP = 0x10, //推挽输出 GPIO_Mode_AF_OD = 0x1C, //复用开漏输出 GPIO_Mode_AF_PP = 0x18 //复用推挽输出 }GPIOMode_TypeDef;
2.GPIO保护二极管(FT5V容忍)
为了防止芯片被外部过高或者过低的输入电压烧坏,STM32内置保护二极管,当引脚输入电压高于VDD-FT(FT标识代表可以容忍5V电压,不同的引脚对电压的容忍值不同,需要在芯片数据手册上查找,见下图)时上方的二极管导通,当引脚电压低于Vss时,下方的二极管导通,这样就可以防止不正常的电压引入芯片导致芯片烧毁
3.GPIO端口复用
为了最大限度的利用端口资源,STM32的大部分端口都具有复用功能。
所谓复用,就是一些端口不仅仅可以做为通用IO口,还可以复用为一些外设引脚,比如P