2.1什么是GPIO?
GPIO=General Purpose Input/Output即为通用目的输入输出。
2.2GPIO的寄存器组
寄存器组:寄存器是CPU与模块之间通信的工具,CPU通过读写寄存器从而控制模块实现具体功能,而寄存器组就是有很多个寄存器。
GPIO的寄存器组由GPIOx_CR(配置寄存器)GPIOx_IDR(输入数据寄存器)和GPIOX_ODR(输出数据寄存器)组成。
2.3GPIO的八种工作模式
四个分类标准:输出与输入;通用与复用;推挽和开漏;上拉、下拉和浮空;
输出:输出推挽,输出开漏,复用推挽,复用开漏。
输入:输入上拉,输入下拉,输入浮空,模拟模式。
问题:为什么输入模式无通用复用之分?
-
功能单一:
- GPIO引脚在输入模式下的主要功能是读取外部信号的状态(高或低)。因此,输入模式的设计通常是为了简化电路和逻辑,直接连接到外部设备或传感器。
-
硬件设计:
- 在硬件层面,GPIO引脚的输入模式通常是通过内部电路(如输入缓冲器)直接连接到引脚,而不需要额外的复用逻辑。这降低了设计的复杂性和功耗。
-
信号完整性:
- 输入引脚的信号完整性非常重要。如果引脚被设计为复用,可能会引入额外的延迟和干扰,从而影响输入信号的准确性。
-
配置简化:
- 输入模式的GPIO通常不需要复杂的配置。复用功能通常涉及多个外设和复杂的时序控制,而输入模式的GPIO则可以通过简单的读操作来获取状态。
-
资源限制:
- 在一些微控制器或单片机中,GPIO引脚的数量是有限的。设计时可能会优先考虑将引脚用于特定功能,而不是复用。
-
应用场景:
- 在许多应用中,GPIO的输入模式主要用于开关、传感器等简单输入,复用的需求相对较少。
推挽:由两个mos管连接着gpio口,上面是P-MOS下面是N-MOS,两个MOS管交替导通,当输出低电平(0),N闭合P断开,反则反之。
开漏:由两个mos管连接着gpio口,上面是P-MOS下面是N-MOS,P-MOS管始终断开,当输入0(低电平)时,N-MOS管闭合,GPIO口输出低电平,当输出1(高电平)时,GPIO口输出高阻抗(两个MOS管都断开)。
上拉下拉浮空针对的是输入模式。
上拉输入:当GPIO口悬空的时候,稳定的给它一个高电压。
下拉输入:当GPIO口悬空的时候,稳定的给它一个低电压。
模拟输入:ADC外部的模拟信号转换为数字信号。
八种工作模式的英文名:
输出推挽模式 Output Push-pull
输出开漏模式 Output Open-drain
复用推挽模式 Alternate Function Push-Pull
复用开漏模式 Alternate Function Open-drain
输入上拉模式 Input Pull-up
输入下拉模式 Input Pull-down
输入浮空模式 Input Floating
模拟模式 Analog
2.4IO的最大输出速度
最大输出速度:IO允许输出电平的最大切换频率。
三个等级:2MHz,10MHz,50Mhz。
实际使用时选择满足要求的最小值。
2.5GPIO的内部结构
施密特触发器原理:输出要么是0要么是1,对于输入负向递减和正向递减有不同的门限,即输入低于或者高于一定程度的时候输出才会变成0或1,可以对输入信号做一个滤波,免除噪声信号的干扰