STM32的GPIO端口配置八种模式的理解

本文详细介绍了STM32的GPIO配置的八种模式,包括模拟输入、浮空输入、上拉/下拉输入、开漏/推挽输出以及复用开漏/推挽输出。每种模式的工作原理和应用场景均有阐述,对于理解GPIO的使用具有指导意义。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


一、GPIO的结构框图

在这里插入图片描述
在这张图中,GPIO的配置可以分成8种模式,4种输入,4种输出。

输入分为:模拟输入、浮空输入、上拉输入、下拉输入

输出分为:开漏输出、推挽输出、复用推挽输出、复用开漏输出

二、八种模式

1. 模拟输入(GPIO_Mode_AIN)

在这里插入图片描述
模拟输入,一般情况下,用于ADC的采集电压时,配置的输入IO口。在模拟输入中,TTL肖特基触发器以及上拉电阻和下拉电阻都处于关闭状态。即使配置上拉或下拉模式,不会影响到模拟信号的输入输出。


2. 浮空输入(GPIO_Mode_IN_FLOATING )

在这里插入图片描述

浮空输入,IO的电平状态是不确定的,完全由外部输入决定,如果该引脚悬空的情况下,读取该端口的电平是不确定的,有可能是高电平,也有可能是低电平。


3. 上拉输入(GPIO_Mode_IPU)

在这里插入图片描述
上拉输入,将一个不确定的信号,通过一个电阻与电源VCC相连,固定在高电平,IO口为高电平。
在上拉输入中接入了一个电阻,它的作用是为了确保信号输入时输入端的电平为高电平。


4. 下拉输入(GPIO_Mode_IPD )

在这里插入图片描述
下拉输入,将一个不确定的信号,通过一个电阻与地GND相连,固定在低电平,IO口为低电平。
与上拉输入同理,在下拉输入中接入了一个电阻,它的作用是为了确保信号输入时输入端的电平为低电平。


5. 开漏输出( GPIO_Mode_Out_OD )

在这里插入图片描述
开漏输出,在这个模式下,是能够输出低电平,但无法真正输出高电平,即高电平时没有驱动能力,需要借助外部上拉电阻完成对外驱动。同时,P-MOS管是处于关闭的,N-MOS管是开启的。当输出寄存器的值为0的时候,N-MOS管导通,此时IO口的电平被N-MOS管拉到VSS,输出为低电平。当输出寄存器为1的时候,N-MOS管截止,IO口直接和输出端断开了,处于浮空状态。


6. 推挽输出( GPIO_Mode_Out_PP )

在这里插入图片描述
推挽输出,它的P-MOS管和N-MOS管是打开的状态,当输出寄存器的值为0的时候,N-MOS管导通,此时IO口的电平被N-MOS管拉到VSS,输出为低电平。当输出寄存器为1的时候,P-MOS管导通,此时IO口的电平被P-MOS管拉到VDD,输出为高电平。简单点讲就是想输出高电平,就输出高电平,想输出低电平,就输出低电平。

开漏输出和推挽输出的区别:开漏输出只有N-MOS管是开启的,P-MOS管是关闭的。推挽输出是N-MOS管和P-MOS管都是开启的


复用功能

可以理解为普通的GPIO口被用作第二功能时的配置情况(即并非作为通用IO口使用),复用功能模式中,一般直接用外设的寄存器来获取该数据信号。

7. 复用开漏输出 ( GPIO_Mode_AF_OD )

在这里插入图片描述
复用开漏输出模式,与开漏输出模式很是相似。只是输出的高低电平的来源不同,不是让CPU写输出数据寄存器了,而是用片内外设模块的复用功能输出来决定的。复用开漏输出中的片内外设功能(TX1,MOSI,MISO.SCK.SS)。


8. 复用推挽输出( GPIO_Mode_AF_PP )

在这里插入图片描述
同理,复用推挽输出模式,与推挽输出模式也是相似。输出的高低电平的来源不同,不是让CPU写输出数据寄存器,而是利用片内外设模块的复用功能输出来决定的。复用推挽输出中的片内外设功能(I2C的SCL,SDA)。

总结

以上就是我关于STM32中配置GPIO的八种模式的理解,谢谢观看。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值