尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

STM32 端口复用与重映射 - 实践

STM32 端口复用与重映射 - 实践
📅 发布时间:2026/6/19 15:47:20

STM32 端口复用与重映射 - 实践

2025-12-17 12:06  tlnshuju  阅读(0)  评论(0)    收藏  举报

一、端口复用功能

1. 基本概念

端口复用是指将GPIO引脚用作内置外设功能引脚的技术。STM32的许多内置外设外部引脚都与GPIO复用,当GPIO作为内置外设使用时称为复用。

示例:串口1的TX、RX引脚默认为PA9、PA10,当这两个引脚不用作普通GPIO而用作串口1功能时,即为端口复用。

2. 配置步骤

// 1. GPIO时钟使能
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
// 2. 复用外设时钟使能
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);
// 3. 端口模式配置
GPIO_InitTypeDef GPIO_InitStructure;
// TX引脚配置:复用推挽输出
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_Init(GPIOA, &GPIO_InitStructure);
// RX引脚配置:浮空输入
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_Init(GPIOA, &GPIO_InitStructure);

3. 关键要点

使用复用功能时必须使能两个时钟:GPIO时钟和复用外设时钟
需要根据外设要求正确配置GPIO模式

二、端口重映射

1. 基本概念

端口重映射是为了优化不同器件封装的外设I/O功能布局,将复用功能重新映射到其他引脚的技术。

重映射类型:

部分重映射:部分引脚进行重映射
完全重映射:所有引脚都映射到新位置

示例:串口1默认在PA9、PA10,重映射后可改为PB6、PB7。

2. 配置步骤

// 1. 重映射后的GPIO时钟使能
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
// 2. 复用外设时钟使能
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);
// 3. AFIO时钟使能(重映射必须)
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
// 4. 开启重映射
GPIO_PinRemapConfig(GPIO_Remap_USART1, ENABLE);
// 5. 初始化重映射后的GPIO
// (配置方法与普通复用相同,但使用新的GPIO引脚)

3. AFIO时钟说明

对以下寄存器进行读写前必须打开AFIO时钟:

AFIO_MAPR:配置复用功能重映射
AFIO_EXTICRX:配置外部中断线映射  
AFIO_EVCR:配置EVENTOUT事件输出

三、I/O引脚复用器架构

1. 复用功能分配

复位后:所有I/O连接到AF0
外设功能:映射到AF1至AF13
EVENTOUT:映射到AF15

2. 配置流程

系统功能:连接到AF0,根据功能配置
GPIO功能:在GPIOx_MODER中配置为输出/输入
外设复用功能:

ADC/DAC:配置为模拟通道
其他外设:配置为复用功能,设置类型、上下拉、速度,连接到对应AFx

EVENTOUT:连接到AF15

四、重映射特殊处理

1. 调试端口冲突处理

当重映射引脚与调试端口冲突时,需要解除调试端口复用:

// 解除JTAG调试端口复用,保留SWD
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);

调试端口重映射选项:

GPIO_Remap_SWJ_NoJTRST:禁用JTRST(PB4变为GPIO)
GPIO_Remap_SWJ_JTAGDisable:禁用JTAG(PA15、PB3、PB4变为GPIO)
GPIO_Remap_SWJ_Disable:完全禁用SWD和JTAG(谨慎使用)

2. 重映射配置原则

首先开启AFIO时钟
根据需求选择重映射方式
如涉及调试端口,解除相应复用
最后配置重映射后的GPIO

相关新闻

  • EmotiVoice支持长文本输入吗?分段处理最佳实践
  • 用EmotiVoice制作沉浸式有声小说全流程分享
  • vue基于springboot的高校数字化校园中数据交换和共享交易平台的设计与实现

最新新闻

  • 2026年优秀的pvc管/安徽pvc管/安徽pvc化工管/pvc排水管横向对比厂家推荐 - 行业平台推荐
  • 如何用Python一键下载网易云音乐完整歌单并保留元数据?
  • 2026年靠谱的上海特种电缆/上海PU电缆优质厂家推荐榜 - 品牌宣传支持者
  • 2026年靠谱的pvc给水管/安徽pvc管/pvc排水管可靠供应商推荐 - 行业平台推荐
  • 2026年口碑好的激光切管/济宁激光切管/激光切管代工/济宁激光切管代工精选厂家推荐 - 品牌宣传支持者
  • 青岛即墨区靠谱的空调清洗公司咨询电话(2026最新) - 品牌排行榜

日新闻

  • 信任的进化:技术实现详解——如何用JavaScript构建博弈论模拟器
  • Terrakube自定义工作流:如何集成OPA、Infracost等工具扩展IaC能力
  • grunt-concurrent快速入门:5分钟学会并行运行Grunt任务

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号