STM32单片机:GPIO模式

GPIO有八种工作模式,分别是推挽输出、开漏输出、复合推挽输出、复合开漏输出、模拟输入、上拉输入、下拉输入、浮空输入。

在了解这些之前,我们先来看一下GPIO口内部的结构:

I/O引脚一般工作电压为3.3V,在它边的两个二极管起到保护作用。VDD为3.3V,当输入电压大于3.3V时,电流就会流向二极管,从而起到保护作用。在它下面的VSS也同理,为0V,当输入电压小于0V时,电流就会流向二极管,从而起到保护作用。当然这种方式并不是长时间有效的。也有些I/O引脚本身就能够容忍5V的电压。

接下来,先来看输入模式吧!

说到输入模式需要先提一提TTL肖特基触发器(也叫施密特触发器),其作用是稳定电平。由于外部输入的电压不太稳定,并不能达到标准的3.3V或0V。施密特触发器会产生两个参考电压,当电压高于较高的参考电压就视为高电平;当电压低于较低的参考电压就视为低电平;在两个参考电压间就保持原本的电平。通过TTL肖特基触发器后可以被输入数据寄存器读取,也可以至片上外设输入。(片上外设:如定时器的PWM、USART、I2C、SPI、CAN)

1.上拉输入:可读取引脚电平,内部连接上拉电阻,因为连到了VDD,所以悬空时默认高电平,最后通过TTL肖特基触发器,输出的是数字信号,是一种数字输入。

2.下拉输入:可读取引脚电平,内部连接下拉电阻,因为连到了VSS,所以悬空时默认低电平,最后通过TTL肖特基触发器,输出的是数字信号,是一种数字输入。

3.浮空输入:可读取引脚电平,IO的电平状态是不确定的,完全由外部输入决定。若引脚悬空,由于受到外界干扰,电平也是不确定的。最后通过TTL肖特基触发器,输出的是数字信号,是一种数字输入。

4.模拟输入:GPIO无效,引脚直接接入内部ADC(主要用于将连续传输的模拟信号转换为数字信号)。因为没有通过TTL肖特基触发器,输出的是模拟信号,是一种模拟输入。

我们再来看输出模式,输出模式下可以通过输入数据寄存器读取引脚状态,但是输入模式下无法通过输出寄存器控制引脚状态。输出控制是由两个MOS管组成的,也就是开关。

1.开漏输出:可输出引脚电平,开漏输出时P-MOS是关闭的,高电平时N-MOS断开,为高阻态;低电平时N-MOS打开,接VSS。在开漏输出的高阻态下,是可以借助外部电路,实现灵活的电压输出。

2.推挽输出:可输出引脚电平,高电平时,P-MOS打开,N-MOS断开,接VDD;低电平时,P-MOS断开,N-MOS打开,接VSS。

3.复用开漏输出:由片上外设控制,高电平为高阻态,低电平接VSS。与开漏输出的区别就是由片上外设控制。

3.复用推挽输出:由片上外设控制,高电平接VDD,低电平接VSS。与推挽输出的区别就是由片上外设控制。

相关推荐
意法半导体STM327 分钟前
【官方原创】STM32CubeMX2 1.1.0新版本发布
stm32·单片机·嵌入式硬件·mcu
周洲083011 分钟前
【无标题】STM32 串口 Printf 重定向|标准库 + HAL库 两套极简通用代码(无需MicroLIB)
stm32·单片机·嵌入式硬件
深圳市恒锐丰科技杨生25 分钟前
EG27324 2.8‑20V 双通道低侧栅极驱动芯片|带 SD 逐周关断外置 MOS 驱动方案
嵌入式硬件·硬件工程
Brilliantwxx44 分钟前
【STM32】初步了解GPIO 从引脚到工作模式的完整拆解
单片机·嵌入式硬件
AOI小白新手上路1 天前
江科协51单片机 17-2 红外遥控电机调速实验调试总结
单片机·嵌入式硬件·51单片机
oshan20121 天前
零基础STM32入门教程--10-PWM 呼吸灯
stm32·单片机·嵌入式硬件
记帖1 天前
STM32C5A3R开发(7)----ADC电压采集
嵌入式硬件·adc·dac·stm32cubeide·stm32c5·stm32cubemx2·stm32c5a3rgt6
自小吃多2 天前
器件移动、旋转、镜像、对齐、等间距操作笔记
笔记·嵌入式硬件
jianqiang.xue2 天前
智能体整体架构设计:四大模块与目录组织
单片机·嵌入式硬件·物联网·架构·esp32
Messy create2 天前
【BMS-AFE-温度检测】
stm32·单片机·能源