GPIO,全称“general porpose input output”,即通用输入输出端口。可以通俗理解为信号进出GPIO的通道,我们可以通过对代码的编写来控制进或出通道的开关,即使能或关闭GPIO端口,从而实现与对应引脚相连的外部设备间的通信、控制和数据采集等功能。
STM32的引脚可以分为6种,分别为电源引脚(3V3、5V、GND)、晶振引脚、复位引脚、BOOT引脚和GPIO引脚。晶振、复位和BOOT引脚对于不同的芯片来说所用引脚也不同,具体请参考技术手册,对于开发者来说,我们主要关注的是GPIO引脚的使用,GPIO有的引脚具有复用和重映射功能,例如stm32f103c8t6中的PA9、PA10这两个引脚就有串口通信的复用功能。其余为普通GPIO引脚。
GPIO结构图
一、四种输入模式
1.上拉输入:输入信号通过上拉电阻被初始化为高电平,再通过TTL施密特触发器从模拟信号9V、3.3V、1.9V转为数字信号0、1后存入输入寄存器中。
2.下拉输入:同上拉输入一样,区别只在通过下拉电阻初始化为低电平。
3.浮空输入:即信号输入既不连接上拉也不连接下拉,输入信号电压值不确定,通过TTL施密特触发器从模拟信号9V、3.3V、1.9V转为数字信号0、1后存入输入寄存器中。通常用于IIC、串口USART中。
4.模拟输入:不通过上下拉电阻,也不通过TTL施密