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

相关推荐
余生皆假期-5 小时前
永磁同步电机二次起步处理
单片机·嵌入式硬件
DLGXY6 小时前
STM32——TIM定时器、定时中断、RCC时序(八)
stm32·单片机·嵌入式硬件
CQ_YM6 小时前
ARM之I2C
arm开发·单片机·嵌入式硬件·嵌入式
让世界再也没有bug7 小时前
测试工具之一 ------示波器
单片机·嵌入式硬件·硬件测试·嵌入式软件测试
CircuitWizard7 小时前
STM32 + 淘晶驰T1串口屏波形显示
stm32·单片机·嵌入式硬件
A9better7 小时前
嵌入式开发学习日志53——互斥量
stm32·嵌入式硬件·学习
Q_21932764559 小时前
基于单片机的个性化服装尺寸红外 测量仪的设计
单片机·嵌入式硬件
Polanda。9 小时前
定时器-PWM参数测量实验
stm32·单片机·嵌入式硬件
恶魔泡泡糖10 小时前
51单片机串口通信
c语言·单片机·嵌入式硬件·51单片机
wotaifuzao10 小时前
【Keil 5安装】keil 5最新版本安装+环境配置+下载百度资源分享(安装包,注册机等)
stm32·单片机·嵌入式硬件·mcu·学习·keil5·最新keil