STM32 GPIO引脚介绍 📅 发布时间:2026/8/18 8:59:23 👁 浏览次数: 本文以 STM32F103 系列为例介绍 GPIO。不同 STM32 系列的总线连接和寄存器配置可能有所差异。##1.GPIO简介GPIOGeneral Purpose Input Output通用输入输出口 可配置为8种输入输出模式 引脚电平0V~3.3V部分引脚可容忍5V 输出模式下可控制端口输出高低电平用以驱动LED、控制蜂鸣器、模拟通信协议输出时序等 输入模式下可读取端口的高低电平或电压用于读取按键输入、外接模块电平信号输入、ADC电压采集、模拟通信协议接收数据等##2.GPIO基本结构所有配图均来源于江协科技STM32教程APB2 总线Advanced Peripheral Bus 2。它是系统总线的一部分负责在CPU和GPIO外设之间传输数据和控制指令。寄存器每个GPIO模块内部包含一系列寄存器。它们通过黄色的双向箭头与APB2总线相连用于存储CPU写入的配置信息如输入/输出模式、输出数据等或读取引脚的状态。例如输出数据为 1 时引脚输出高电平输出数据为 0 时引脚输出低电平。驱动器寄存器之后连接着驱动器。驱动器负责将寄存器中的数字信号转换为实际的电信号或者将外部输入的电信号转换为数字信号存入寄存器起到信号放大和驱动的作用。GPIOA 模块控制PA0 到 PA15共16个引脚。GPIOB 模块控制PB0 到 PB15共16个引脚。##3.GPIO位结构GPIO位结构主要分为输入路径和输出路径两部分。3.1输入路径上半部分保护与上下拉电阻红色部分引脚接入后有上拉电阻连接到 Vdd和下拉电阻连接到 Vss通过“开/关”开关控制是否启用。在引脚悬空时启用上下拉可以固定电平。TTL肖特基触发器中间这是一个输入缓冲器负责将引脚上的模拟电压信号转换成数字信号0 或 1。它能有效去除信号抖动提高输入信号的稳定性。输入数据寄存器 (IDR)经过触发器转换后的数字信号会存入“输入数据寄存器”程序CPU可以通过“读出”操作读取该引脚当前的输入状态。复用与模拟信号信号可以直接绕开触发器作为“模拟输入”交给片上的 ADC 模块使用或者作为“复用功能输入”如外部中断、定时器捕获直接传给片上的其他外设。3.2输出路径下半部分写控制左侧CPU 通过“写入”操作可以将数据写入“输出数据寄存器 (ODR)”或者通过“位置位/清除寄存器 (BSRR)”精确控制单个位的置位或清零。输出控制与 MOSFET右下方ODR 的数据会进入“输出控制”逻辑。控制逻辑根据当前配置的模式去驱动两个 MOS 管P-MOS和N-MOS。推挽输出P-MOS 和 N-MOS 交替导通。可以输出强高电平和强低电平驱动能力强。开漏输出只有 N-MOS 工作负责拉低P-MOS 始终关闭。高电平需要外部外接上拉电阻来实现常用于 I2C 等总线通信。关闭/高阻态两个 MOS 管都关断引脚处于高阻态等同于输入模式。复用功能输出如果配置为复用模式输出控制逻辑会接管允许片上的其他外设如定时器 PWM直接通过这里的驱动器将信号输出到 I/O 引脚。输出类型高电平低电平常见用途推挽输出主动输出主动输出LED、普通数字信号开漏输出需外接上拉主动拉低I²C、多设备共线