登录/注册

stm32f103端口重映射

更多

在STM32F103系列微控制器中,端口重映射(Pin Remapping) 是一种将外设功能(如USART、SPI、定时器等)从默认引脚重新映射到其他备用引脚的功能。这种设计可以帮助用户灵活配置硬件布局,避免引脚冲突。


端口重映射的步骤

  1. 开启AFIO时钟
    重映射功能依赖于复用功能I/O(AFIO)模块,需先使能其时钟:

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
  2. 配置重映射寄存器
    使用库函数 GPIO_PinRemapConfig() 设置重映射模式。不同外设有不同的重映射选项:

    // 示例:将USART1从PA9/PA10重映射到PB6/PB7(部分重映射)
    GPIO_PinRemapConfig(GPIO_PartialRemap_USART1, ENABLE);
  3. 配置新的GPIO引脚
    将目标引脚设置为复用功能模式:

    GPIO_InitTypeDef GPIO_InitStruct;
    GPIO_InitStruct.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7;  // PB6和PB7
    GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF_PP;         // 复用推挽输出
    GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init(GPIOB, &GPIO_InitStruct);

常用外设的重映射选项

  1. USART1

    • 默认引脚:PA9(TX)、PA10(RX)
    • 重映射选项:
      • 部分重映射:PB6(TX)、PB7(RX)
      • 完全重映射:PC10(TX)、PC11(RX)
  2. SPI1

    • 默认引脚:PA4~PA7
    • 重映射引脚:PB3~PB5
  3. 定时器(TIM2)

    • 默认通道:PA0~PA3
    • 重映射通道:PB8~PB11

注意事项

  1. AFIO时钟必须开启,否则重映射无法生效。
  2. 部分重映射 vs. 完全重映射
    • 部分重映射仅改变部分引脚,其他引脚仍保留默认功能。
    • 完全重映射会完全迁移所有相关引脚,原默认引脚将不再作为外设功能使用。
  3. 查阅数据手册:不同型号的STM32F103可能支持不同的重映射组合,需参考《STM32F103xx参考手册》确认细节。
  4. 冲突检查:确保重映射后的引脚未被其他功能占用(如JTAG/SWD调试接口)。

示例:将USART1重映射到PB6/PB7

#include "stm32f10x.h"

void USART1_Remap_Config() {
    // 1. 开启AFIO和GPIOB时钟
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO | RCC_APB2Periph_GPIOB, ENABLE);

    // 2. 配置USART1部分重映射
    GPIO_PinRemapConfig(GPIO_PartialRemap_USART1, ENABLE);

    // 3. 配置PB6(TX)和PB7(RX)为复用推挽模式
    GPIO_InitTypeDef GPIO_InitStruct;
    GPIO_InitStruct.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7;
    GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF_PP;
    GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init(GPIOB, &GPIO_InitStruct);

    // 4. 继续配置USART1参数(略)
}

通过合理使用端口重映射,可以优化PCB布局并解决引脚资源冲突问题。建议结合STM32CubeMX工具进行可视化配置。

stm32cubeF1 1.3.1端口重映射被禁用的原因和解决方法

现象:如果使用了端口重映射功能,只要一运行到类似于__HAL_AFIO_REMAP_TIM4_ENABLE();这样的语句,就会推出调试状态,JTAGH或者SW的调试端口就被禁用了。 原因:这个语句

2024-05-08 07:24:54

谈一谈STM32单片机端口复用和端口重映射

STM32单片机端口复用和端口重映射STM32单片机上有很多I/O口,也

2022-02-22 08:18:02

STM32F10x JTAG端口重映射的知识点,绝对实用

STM32F10x JTAG端口重映射的知识点,绝对实用

2022-02-09 06:23:01

APM32F003F6P6_IO重映射_能否修改选项字节配置IO口重映射

APM32F003F6P6_IO重映射_能否修改选项字节配置IO口重映射

资料下载 李鸿洋 2022-11-09 21:03:40

STM32单片机端口复用和端口重映射

STM32单片机端口复用和端口重映射STM32单片机上有很多I/O口,也

资料下载 佚名 2021-12-28 19:23:11

STM32F103单片机JTAG端口重映射

STM32单片机复位后,JTAG口默认是被占用的。如果想将JTAG占用的几个IO口设置为普通IO口,就需要进行端口重映射。复位后端口默认功能可以

资料下载 王银喜 2021-12-04 15:36:08

stm32f103stm32f407的引脚复用与重映射

stm32f103的AFIO:stm32f103的AFIO寄存器如下,使用前都要打开AFIO时钟:AFIO_MAPR:配置复用功能重映射AFIO

资料下载 佚名 2021-12-02 16:21:13

STM32F103F407复用映射差异

别。默认复用功能:只需要开启该外设的时钟和相对应的GPIO时钟,然后再配置相应外设即可。(例:开启I2c时钟和PB6和PB7时钟)重映射复用:不仅要开启该外设的时钟和相对应的GPIO时钟,还要开启AFIO时钟才能开始配置外设。st

资料下载 杨海清 2021-11-29 16:51:07

STM32F103单片机JTAG端口重映射的相关资料推荐

STM32单片机复位后,JTAG口默认是被占用的。如果想将JTAG占用的几个IO口设置为普通IO口,就需要进行端口重映射。复位后端口默认功能可以

2022-02-07 08:25:46

STM32F103C8 USART1串口重映射实现方法

STM32F103C8 USART1串口重映射实现方法代码我们知道,F103的usart1串口是PA8PA9的复用功能,我们在使用的时候直接配置

2022-01-07 08:16:46

stm32f103串口如何实现重映射功能?

stm32f103串口如何实现重映射功能?

2021-12-14 07:19:41

如何实现STM32F103 USART1串口重映射功能?

如何实现STM32F103 USART1串口重映射功能?

2021-12-07 06:09:40

如何使用CubeMax进行参数配置将端口重映射到PD0和PD1?

如何使用CubeMax进行参数配置将端口重映射到PD0和PD1?

2021-12-02 06:20:17

STM32端口复用和重映射详细步骤有哪些呢

STM32端口复用设置步骤有哪些呢?STM32端口重映射详细步骤有哪些呢

2021-11-17 06:03:00

如何在STM32F103上进行CAN通信的管脚重映射配置和使用

CAN通信管脚重映射1. 摘要本篇笔记主要介绍,如何在STM32F103上进行CAN通信的管脚重映射配置和使用2. 准备工作1), IAR 8.

2021-08-19 06:20:16
7天热门专题 换一换
相关标签