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。与推挽输出的区别就是由片上外设控制。

相关推荐
芜湖_3 小时前
CLion入门2.0(优雅进行STM32和ESP32开发)(船新版本)
stm32·esp32·开发环境·clion
爱学电子的刻刻帝4 小时前
LVGL+FreeRTOS实战项目:智能健康助手(蓝牙模块篇)
单片机·嵌入式硬件
【ql君】qlexcel6 小时前
STM32的ADC工作模式
stm32·同步·adc·工作模式·规则组·注入组·交叉
2401_843785236 小时前
STM32 GPIO
stm32·单片机·嵌入式硬件
jiuri_12157 小时前
单片机内存管理剖析
单片机·嵌入式硬件
2401_843785238 小时前
STM32简介
stm32·单片机·嵌入式硬件
【 STM32开发 】8 小时前
STM32_SD卡的SDIO通信_基础读写
stm32·cubemx·sd卡·tf卡·sdio
tadus_zeng12 小时前
stm8s单片机(二)外部中断实验
单片机·嵌入式硬件
大专生学编程12 小时前
基于ESP32-IDF驱动GPIO输出控制LED
嵌入式硬件·esp32·esp-idf