知方号

知方号

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

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

文章目录 一、GPIO的结构框图二、八种模式1. 模拟输入(GPIO_Mode_AIN)2. 浮空输入(GPIO_Mode_IN_FLOATING )3. 上拉输入(GPIO_Mode_IPU)4. 下拉输入(GPIO_Mode_IPD )5. 开漏输出( GPIO_Mode_Out_OD )6. 推挽输出( GPIO_Mode_Out_PP ) 复用功能7. 复用开漏输出 ( GPIO_Mode_AF_OD )8. 复用推挽输出( GPIO_Mode_AF_PP ) 总结

一、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的八种模式的理解,谢谢观看。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至lizi9903@foxmail.com举报,一经查实,本站将立刻删除。