STM32 引脚到底有多少?为什么一个引脚能当好几个用?

STM32 引脚到底有多少?为什么一个引脚能当好几个用?

几乎所有 STM32 入门者都会困惑:

👉 STM32 到底有多少个引脚?

👉 GPIOA 的第 0 引脚和 GPIOB 的第 0 引脚是不是重复?

👉 为什么一个引脚能有好几种功能却不会冲突?

我们来系统、工程化地讲清楚。

🧩 一、STM32 引脚数量 ≠ 功能数量STM32 芯片的 “引脚数量” 是指 物理脚位 数量(例如 48 脚、64 脚、100 脚封装等);

而 “引脚功能” 是指 逻辑功能(GPIO、UART、I2C、ADC、TIM、SPI 等)。

例如:

STM32F103C8T6 是 48 引脚封装;

实际可用 GPIO 约 37 个;

但每个引脚可以有多种复用功能,所以总“功能数” > 物理引脚数。

🧮 二、命名规则:端口 + 引脚编号STM32 的 GPIO 命名遵循统一规则:

名称部分含义

端口号表示 GPIO 组(如 GPIOA、GPIOB、GPIOC 等)

引脚号表示该端口内的第几个引脚(0–15)📘 每个端口最多有 16 个引脚(0~15),但并非所有芯片型号都完整引出。

例如:

STM32F103C8T6:具有 GPIOA~GPIOC,共 3×16=48 引脚,但部分未封装;

STM32F407:具有 GPIOA~GPIOI,可达 144 引脚封装。

👉 即使 GPIOA 的第 0 引脚与 GPIOB 的第 0 引脚编号相同,

它们仍是不同的物理引脚,由不同端口寄存器控制,互不干扰。

微信图片_2026-01-06_190630_229.png (684.28 KB, 下载次数: 118)

下载附件

保存到相册

2026-1-6 19:08 上传

微信图片_2026-01-06_190634_640.png (954.64 KB, 下载次数: 124)

下载附件

保存到相册

2026-1-6 19:08 上传

⚙️ 三、每个引脚的多功能设计(复用功能)STM32 的引脚通常具备多达 3~5 种功能,这是通过 复用功能机制(Alternate Function, AF) 实现的。

🔹 举例:

GPIOA 的第 9 引脚(GPIOA Pin 9)可以被配置为:

普通 GPIO 输出;

串口 USART1_TX;

定时器 TIM1_CH2;

I2C_SCL(部分型号)。

这些都是通过设置引脚的 复用模式寄存器(AFR) 来决定的。

示例代码:

GPIO_InitStruct.Pin = GPIO_PIN_9;

GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; // 复用推挽输出

GPIO_InitStruct.Alternate = GPIO_AF7_USART1; // 指定复用功能

HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);

✅ 不会冲突的原因:

引脚在任意时刻只能工作在一种模式下;

即便它支持多种功能,只有在你通过寄存器选定的那个功能才生效;

其他功能逻辑上“断开”。

🔩 四、复用冲突的现实例子如果两个外设复用了同一个引脚:

比如 USART1_TX 和 TIM1_CH2 都需要 GPIOA Pin 9;

你只能选择其中一个外设使用;

另一个就无法启用(CubeMX 会提示冲突)。

🧠 工程思路:

打开 CubeMX;

选定你想启用的外设;

CubeMX 自动分配可用引脚;

若冲突会提示红色警告,要求你更换脚位。

微信图片_2026-01-06_190638_920.png (76.13 KB, 下载次数: 98)

下载附件

保存到相册

2026-1-6 19:08 上传

🧰 五、引脚唯一索引的计算从软件层面看,GPIO(端口) + Pin(编号) 组合已经是唯一索引。

你可以把「端口号」映射为数字编号,并计算唯一索引:

端口数字编号索引公式

GPIOA0(0 × 16 + PinNum)

GPIOB1(1 × 16 + PinNum)

GPIOC2(2 × 16 + PinNum)

GPIOD3(3 × 16 + PinNum)

GPIOE4(4 × 16 + PinNum)例如:

GPIOA Pin 3 → index = 3

GPIOB Pin 0 → index = 16

GPIOC Pin 15 → index = 47

这样软件就能用统一编号管理所有引脚。

🧭 六、命名设计逻辑STM32 的引脚命名体系体现了四个设计理念:

设计目标说明

统一架构Cortex-M 系列 GPIO 模块均支持 16 位端口结构

模块化封装不同封装型号可裁剪端口数量以匹配封装尺寸

灵活复用外设数量多于引脚数量,通过 AF 机制实现最大兼容

硬件隔离同一时间仅一种功能有效,避免电气冲突🔎 七、快速总结概念含义

物理引脚封装上的真实金属脚

GPIO 端口GPIOA~GPIOE,每组最多 16 个引脚

逻辑编号GPIOx Pin_y,用于软件访问

复用功能同一引脚可被多个外设共享,通过寄存器选择

冲突机制一个引脚不能被多个功能同时使用

唯一索引端口号 × 16 + 引脚号,保证全局唯一性🌟 八、示例(STM32F103C8T6)引脚功能1功能2功能3

GPIOA Pin 9GPIOUSART1_TXTIM1_CH2

GPIOA Pin 10GPIOUSART1_RXTIM1_CH3

GPIOB Pin 6GPIOI2C1_SCLTIM4_CH1

GPIOB Pin 7GPIOI2C1_SDATIM4_CH2在实际工程中:

若使用串口 1,则配置 GPIOA 的第 9、10 引脚;

若使用 I2C1,则配置 GPIOB 的第 6、7 引脚;

两者不可同时复用。

📘 九、一句话记忆法“每个引脚可以叫很多名字,但在同一时间只穿一套衣服。”

相关推荐

《蒹葭》阅读练习题及答案
365体育app

《蒹葭》阅读练习题及答案

📅 07-04 👁️ 3610
【许】是什么意思、字义及解释
365提款经验

【许】是什么意思、字义及解释

📅 08-28 👁️ 8917
无线网络产品列表
365提款经验

无线网络产品列表

📅 12-07 👁️ 7375