开云十大最新推荐

STM32 GPIO 结构原理图详解及模式配置全解析

出处:网络整理 发布于:2025-08-05 15:39:38 | 631 次阅读

电子系统设计中,STM32 的 GPIO(通用输入输出)具有至关重要的作用,它可以被配置为多种模式,以满足不同的应用需求。这些模式包括输入浮空、输入上拉 / 下拉、模拟、推挽和开漏输出等。在输入模式里,上拉和下拉电阻的作用十分关键,它们能够确保逻辑电平的确定性,避免信号的不稳定。而输出模式分为推挽和开漏,推挽模式使用两个(一个 PMOS 和一个 NMOS)来驱动输出,能够快速地将输出驱动到适当的电平;开漏模式则需要外部上拉电阻,在一些特定的应用场景中具有独特的优势。复用功能允许 GPIO 与多个外设共享,大大提高了引脚的利用率;模拟配置则用于 ADC、DAC 等模拟信号操作,为处理模拟信号提供了便利。配置这些模式涉及到 GPIOx_PUPDR、GPIOx_OTYPER 等寄存器。

GPIO 等效原理图


STM32 产品集成了三个主要的 GPIO 基本结构,分别是三伏兼容(缩写为 TC)、三伏容限(缩写为 TT)和五伏容限(缩写为 FT)。图 1 给出了等效的 GPIO 图结构,图 2 给出了 TT 或 FT 等效的 GPIO 图结构。

输入模式配置


当 STM32 器件 I/O 引脚配置为输入时,有三种选项可供选择:
  • 带内部上拉的输出:在 STM32 器件中使用上拉电阻,能确保在浮动输入信号的情况下具有良好定义的逻辑电平。根据应用要求,还可以使用外部上拉电阻。
  • 带内部下拉的输入:使用下拉电阻,同样是为了确保在浮动输入信号时逻辑电平的确定性。也可根据需要使用外部下拉电阻。
  • 浮空输入:信号电平跟随外部信号。但当没有外部信号时,施密特触发器会在由外部噪声引起的逻辑电平之间随机切换,这会增加总体消耗。

编程为输入时,I/O 端口具有以下特征:
  • 输出被关闭;
  • 施密特触发器输入被打开;
  • 根据 GPIOx_PUPDR 寄存器中的值决定是否激活上拉或下拉电阻;
  • 输入数据寄存器每隔 1 个 AHB 时钟周期对 I/O 引脚上的数据进行一次采样;
  • 通过读取 GPIOx_IDR 输入数据寄存器可获取 I/O 状态。

输出模式配置


当 STM32 器件 I/O 引脚配置为输出时,有两种选项:
  • 推挽输出模式:推挽输出使用两个晶体管(一个 PMOS 和一个 NMOS)。当输出必须驱动为高电平状态时,顶部晶体管(PMOS)导通;当输出必须驱动为低电平状态时,底部晶体管(NMOS)导通。两个晶体管的控制通过 GPIO 端口输出类型寄存器(GPIOx_OTYPER)完成。将输出寄存器(GPIOx_ODR)的相关位写 0 可激活 NMOS 晶体管,强制 I/O 引脚接地;写 1 可激活 PMOS 晶体管,强制 I/O 引脚接通 VDD。
  • 开漏输出模式:开漏输出模式不使用 PMOS 晶体管,而是需要一个上拉电阻。当输出必须变为高电平时,必须关闭 NMOS 晶体管,仅通过上拉电阻将电平拉高。该上拉电阻可以是内部的,典型值为 40kOhm,并通过 GPIO 端口上拉 / 下拉寄存器(GPIOx_PUPDR)激活。

编程为输出时,I/O 端口具有以下特征:
  • 可将输出缓冲器配置为开漏或推挽模式;
  • 施密特触发器输入被打开;
  • 根据 GPIOx_PUPDR 寄存器中的值决定是否激活上拉或下拉电阻;
  • 写入输出数据寄存器 GPIOx_ODR 的值将 I/O 引脚状态置位;
  • GPIOx_ODR 中的写入数据可从 GPIOx_IDR 中读取,该寄存器每个 AHB 时钟周期更新一次。

复用功能


在一些 STM32 GPIO 引脚上,用户可以选择复用功能输入 / 输出。每个引脚可与多达 16 个外设功能复用,例如通信接口(SPI,UART,I2C,USB,CAN,LCD 等)、、调试接口等。所选引脚的复用功能通过两个寄存器配置:GPIOx_AFRL(引脚 0 到 7)和 GPIOx_AFRH(引脚 8 到 15)。
对 I/O 端口进行编程作为复用功能时:
  • 可将输出缓冲器配置为开漏或推挽模式
  • 输出缓冲器由来自外设的信号驱动(使能和数据)
  • 施密特触发器输入被打开
  • 根据 GPIOx_PUPDR 寄存器中的值决定是否激活上拉或下拉电阻
  • 输入数据寄存器每隔 1 个 AHB 时钟周期对 I/O 引脚上的数据进行一次采样。
  • 对输入数据寄存器的读访问可获取 I/O 状态。

模拟配置


有一些 STM32 GPIO 引脚可以配置为模拟模式,允许使用 ADC、DAC、OPAMP 和 COMP 内部外设。要在模拟模式下使用 GPIO 引脚,需要考虑以下寄存器:
  • GPIOx_MODER,用于选择模式(输入,输出,复用,模拟)
  • GPIOx_ASCR,用于选择所需的功能,如 ADC,DAC,OPAMP 或 COMP

对 I/O 端口进行编程作为模拟配置时:
  • 输出缓冲器被关闭
  • 施密特触发器输入被禁用,因此 I/O 引脚的每个模拟值零消耗。施密特触发器的输出被强制为恒定值(0)。
  • 上拉和下拉电阻被硬件关闭
  • 对输入数据寄存器的读访问值为 “0”。

GPIO 配置指南



0次

版权与免责声明

凡本网注明“出处:维库电子市场网”的所有作品,版权均属于维库电子市场网,转载请必须注明维库电子市场网,//fzqkw.cn,违反者本网将追究相关法律责任。

本网转载并注明自其它出处的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品出处,并自负版权等法律责任。

如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。

OEM清单文件: OEM清单文件
*公司名:
*联系人:
*手机号码:
QQ:
有效期:

扫码下载APP,
 一键连接广大的电子世界。 

在线人工客服

买家服务:
卖家服务:
技术客服:

0571-85317607

网站技术支持

13606545031

客服在线时间周一至周五
 9:00-17:30

关注官方微信号,
第一时间获取资讯。

建议反馈

联系人:

联系方式:

按住滑块,拖拽到最右边
>>
感谢您向阿库提出的宝贵意见,您的参与是维库提升服务的动力!意见一经采纳,将有感恩红包奉上哦!