stm32f103c8t6数据手册重映射
stm32f103c8t6数据手册重映射
STM32F103C8T6 的 重映射 (Remap) 功能是其 复用功能 I/O (AFIO) 模块的核心特性之一。它允许你将某些片上外设(如 USART、定时器、SPI、I2C 等)的默认引脚分配,切换到芯片提供的另一组备选引脚上。
为什么要重映射?
- 避免引脚冲突: 当设计中多个外设的默认引脚位置发生重叠或冲突时,重映射可以将其中一个外设“移动”到其他空闲引脚。
- 优化 PCB 布局: 为了布线方便、缩短走线长度、减少交叉干扰,可能需要将某个外设的信号线安排到芯片的不同侧面。
- 适应特定硬件设计: 某些外设(如 CAN、USB)在特定封装下只有重映射后的引脚可用。
- 释放默认引脚作他用: 如果默认引脚没有使用该外设,重映射可以释放它们用作 GPIO 或其他功能。
STM32F103C8T6 的重映射机制 (关键点):
- AFIO 时钟使能: 在使用重映射功能之前,必须在 RCC 模块中使能 AFIO (Alternate Function I/O) 的时钟 (
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE))。这是最常见的遗漏点! - 重映射寄存器 (AFIO_MAPR): 主要的重映射配置都通过 AFIO_MAPR (AFIO remap and debug I/O configuration register) 寄存器完成。该寄存器包含多个位字段,每个字段控制一个或一组外设的重映射状态。
- 两种重映射模式:
- 部分重映射 (Partial Remap): 外设的部分信号线从默认引脚切换到备用引脚,另一部分信号线仍保留在默认引脚。例如,定时器 TIM2 的部分重映射只改变 CH3 和 CH4 的引脚。
- 完全重映射 (Full Remap): 外设的所有信号线都从默认引脚切换到另一组备用引脚。例如,TIM2 的完全重映射将所有通道和触发/刹车引脚都移到新位置。
- 外设时钟使能: 在配置重映射之后,再使能目标外设的时钟。
- GPIO 配置: 必须将重映射后使用的目标 GPIO 引脚配置为复用功能输出模式 (
GPIO_Mode_AF_PP或GPIO_Mode_AF_OD,取决于外设要求)。
操作步骤概要 (以库函数为例):
- 使能 AFIO 时钟:
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); - 配置重映射:
- 使用库函数:
GPIO_PinRemapConfig(Remap_XXX, ENABLE);(其中Remap_XXX是具体的重映射宏定义,如Remap_TIM2,Remap_USART1,Remap_SPI1等)。 - 或者直接操作
AFIO->MAPR寄存器相应的位字段 (如AFIO_MAPR_TIM2_REMAP[1:0],AFIO_MAPR_USART1_REMAP,AFIO_MAPR_SPI1_REMAP)。 - 选择正确的重映射宏/位字段至关重要! 部分重映射和完全重映射有不同的宏/位设置。例如:
Remap_TIM2_Partial1/Remap_TIM2_Partial2/Remap_TIM2_FullRemap_USART1(对于 USART1,通常是完全重映射)Remap_SPI1
- 使用库函数:
- 使能外设时钟:
RCC_APBxPeriphClockCmd(RCC_APBxPeriph_XXX, ENABLE);(例如RCC_APB2Periph_USART1)。 - 配置目标 GPIO 引脚: 将你选择作为重映射输出的引脚(不再是默认引脚!)配置为复用功能模式。
- 初始化 GPIO (
GPIO_InitTypeDef) GPIO_InitStruct.GPIO_Pin = ...(重映射后的引脚,如 PA9/PA10 重映射为 PB6/PB7)GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF_PP;(推挽复用输出) 或GPIO_Mode_AF_OD;(开漏复用输出,如 I2C)GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;(通常)GPIO_Init(GPIOx, &GPIO_InitStruct);
- 初始化 GPIO (
STM32F103C8T6 常见外设的重映射选项举例 (参考数据手册):
- USART1:
- 默认引脚:TX=PA9, RX=PA10
- 完全重映射: TX=PB6, RX=PB7 (
GPIO_PinRemapConfig(GPIO_Remap_USART1, ENABLE);)
- USART2:
- 默认引脚:TX=PA2, RX=PA3
- 不支持重映射 (在 C8T6 上)
- USART3:
- 默认引脚:TX=PB10, RX=PB11, CK=PB12, CTS=PB13, RTS=PB14
- 部分重映射: TX=PC10, RX=PC11, CK=PC12, CTS=PB13, RTS=PB14 (CTS/RTS 未重映射) (
GPIO_PinRemapConfig(GPIO_PartialRemap_USART3, ENABLE);) - 完全重映射: TX=PD8, RX=PD9, CK=PD10, CTS=PD11, RTS=PD12 (
GPIO_PinRemapConfig(GPIO_FullRemap_USART3, ENABLE);)
- TIM2:
- 默认引脚:CH1=PA0, CH2=PA1, CH3=PA2, CH4=PA3, ETR=PA0/PA15(时钟输入), BKIN=PA6
- 部分重映射1: CH1=PA15, CH2=PB3, CH3=PA2, CH4=PA3 (
GPIO_PinRemapConfig(GPIO_PartialRemap1_TIM2, ENABLE);) - 部分重映射2: CH1=PA0, CH2=PA1, CH3=PB10, CH4=PB11 (
GPIO_PinRemapConfig(GPIO_PartialRemap2_TIM2, ENABLE);) - 完全重映射: CH1=PA15, CH2=PB3, CH3=PB10, CH4=PB11 (
GPIO_PinRemapConfig(GPIO_FullRemap_TIM2, ENABLE);)
- TIM3:
- 默认引脚:CH1=PA6, CH2=PA7, CH3=PB0, CH4=PB1, ETR=PD2
- 部分重映射: CH1=PB4, CH2=PB5, CH3=PB0, CH4=PB1 (CH3/CH4 未重映射) (
GPIO_PinRemapConfig(GPIO_PartialRemap_TIM3, ENABLE);) - 完全重映射: CH1=PC6, CH2=PC7, CH3=PC8, CH4=PC9 (
GPIO_PinRemapConfig(GPIO_FullRemap_TIM3, ENABLE);)
- SPI1:
- 默认引脚:SCK=PA5, MISO=PA6, MOSI=PA7, NSS=PA4 (软件 NSS) 或 PA15 (硬件 NSS)
- 重映射: SCK=PB3, MISO=PB4, MOSI=PB5, NSS=PA15 (
GPIO_PinRemapConfig(GPIO_Remap_SPI1, ENABLE);) 注意:重映射后 NSS 强制为 PA15。
- I2C1:
- 默认引脚:SCL=PB6, SDA=PB7
- 重映射: SCL=PB8, SDA=PB9 (
GPIO_PinRemapConfig(GPIO_Remap_I2C1, ENABLE);)
- CAN1:
- 默认引脚:RX=PA11, TX=PA12
- 重映射: RX=PB8, TX=PB9 (
GPIO_PinRemapConfig(GPIO_Remap_CAN1, ENABLE);)
重要提示:
- 务必查阅数据手册: 以上列表是常见情况的示例。最权威、最准确的信息来源永远是 STM32F103C8T6 的数据手册 (Datasheet) 和参考手册 (Reference Manual RM0008)。请查阅:
- Datasheet: 确认芯片封装 (这里是 LQFP48) 和具体的引脚定义表 (Pinout and pin description),看哪些引脚支持哪些外设的复用功能。
- Reference Manual: 详细查看 "9.3 Alternate function I/O and debug configuration (AFIO)" 章节 (通常在 Section 9.3),特别是 "9.3.2 AF remap and debug I/O configuration register (AFIO_MAPR)" 小节。这里会列出所有可重映射的外设、支持的映射模式(部分/完全)以及对应的寄存器位配置。这是进行重映射编程的核心依据。
- AFIO 时钟: 忘记使能 AFIO 时钟是重映射失败的最常见原因!
- JTAG/SWD 引脚 (PA13, PA14, PA15, PB3, PB4): 这些引脚默认用于调试。如果你重映射的外设需要使用这些引脚 (如 SPI1 重映射到 PB3/PB4/PB5),你可能需要在
AFIO_MAPR寄存器中禁用 JTAG 功能(保留 SWD 通常足矣),例如GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);。否则这些引脚会被调试器占用,导致你的外设无法正常工作。 - 引脚复用功能: 即使不进行重映射,当使用外设的默认引脚时,也需要将这些 GPIO 配置为 Alternate Function Push-Pull (AF_PP) 或 Alternate Function Open-Drain (AF_OD) 模式。重映射只是改变了外设信号连接到哪一个具体的 GPIO 引脚上,GPIO 配置的模式要求不变。
- 规划引脚: 在 PCB 设计或开发板布线前,仔细规划好所有外设使用的引脚及其是否需要重映射,避免冲突和不必要的复杂性。
总结: STM32F103C8T6 的重映射功能通过 AFIO 模块实现,允许将特定外设的 I/O 信号灵活地分配到不同的物理引脚上。使用时必须:1) 使能 AFIO 时钟;2) 配置 AFIO_MAPR 寄存器(或使用库函数)选择所需的重映射模式;3) 使能外设时钟;4) 正确配置目标 GPIO 引脚的复用功能模式。详细的重映射选项和寄存器位定义,请务必查阅官方数据手册和参考手册的 AFIO 章节。
学STM32为什么首选F103C8T6?
STM32F103C8T6是STMicroelectronics(ST)推出的一款基于ARMCortex-M3内核的32位微控制器单片机(MCU)。它具有一系列优势和广泛的应用场景。这里就来介绍一下
2024-05-18 08:04:25
stm32f103c8t6怎么连接噪声传感器
连接噪声传感器到STM32F103C8T6需要以下步骤: 确定传感器和STM32F103C8T6之间的连接接口。噪声传感器通常使用模拟信号输出,可以将其连接到
2023-12-21 16:10:05
ch32f103c8t6与stm32f103c8t6的区别
ch32f103c8t6与stm32f103c8t6的区别 STM32F103C8T6是一款32位微处理器,属于
2023-08-22 16:05:41
STM32F103C8T6核心板的资料合集免费下载
),STM32F103C8T6原理图,STM32F103C8T6核心板尺寸,STM32F103C8T6.SCHLIB,和
资料下载
浮世漂流
2020-06-04 08:00:00
STM32F103C8T6中断特征介绍 用按钮为STM32 MCU触发一个中断
中断是MCU的特征之一,STM32F103C8T6也不例外。以下通过STM32F103C8T6 Blue Pill外接一个按钮,向MCU触发外部中断。
2022-05-17 08:57:14
STM32F103C8T6和STM32F103CBT6的区别
一 序:1 STM32F103C8T6和STM32F103CBT6 引脚相同,唯一的区别是前者为64kflash(0x8000000~0x800FFFF) 后者为128kflash
stm32f103C8T6是如何使用DMA发送数据的
如何去实现stm32f103C8T6接收DMA和串口IDLE中断配合接收不定长数据呢?stm32f103C8T6是如何使用DMA发送
深圳高价回收STM32F103C8T6 收购STM32F103C8T6
大量收购工厂库存ST电子芯片STM32F103C8T6 ,实力收购工厂库存ST芯片STM32F103C8T6 ,回收价格高!!财富热线 帝欧电子 赵先生 ***同步微信 )QQ:879821252
stm32f103c8t6是如何使用LORA传输数据的
stm32f103c8t6使用LORA传输数据本次实验目的:使用多个STM32f103C8T6采集不同地点的环境
换一换
- 如何分清usb-c和type-c的区别
- 中国芯片现状怎样?芯片发展分析
- vga接口接线图及vga接口定义
- 芯片的工作原理是什么?
- 华为harmonyos是什么意思,看懂鸿蒙OS系统!
- 什么是蓝牙?它的主要作用是什么?
- ssd是什么意思
- 汽车电子包含哪些领域?
- TWS蓝牙耳机是什么意思?你真的了解吗
- 什么是单片机?有什么用?
- 升压电路图汇总解析
- plc的工作原理是什么?
- 再次免费公开一肖一吗
- 充电桩一般是如何收费的?有哪些收费标准?
- ADC是什么?高精度ADC是什么意思?
- dtmb信号覆盖城市查询
- EDA是什么?有什么作用?
- 苹果手机哪几个支持无线充电的?
- type-c四根线接法图解
- 华为芯片为什么受制于美国?
- 怎样挑选路由器?
- 元宇宙概念股龙头一览
- 锂电池和铅酸电池哪个好?
- 什么是场效应管?它的作用是什么?
- 如何进行编码器的正确接线?接线方法介绍
- 虚短与虚断的概念介绍及区别
- 晶振的作用是什么?
- 大疆无人机的价格贵吗?大约在什么价位?
- 苹果nfc功能怎么复制门禁卡
- amoled屏幕和oled区别
- 单片机和嵌入式的区别是什么
- 复位电路的原理及作用
- BLDC电机技术分析
- dsp是什么意思?有什么作用?
- 苹果无线充电器怎么使用?
- iphone13promax电池容量是多少毫安
- 芯片的组成材料有什么
- 特斯拉充电桩充电是如何收费的?收费标准是什么?
- 直流电机驱动电路及原理图
- 传感器常见类型有哪些?
- 自举电路图
- 通讯隔离作用
- 苹果笔记本macbookpro18款与19款区别
- 新斯的指纹芯片供哪些客户
- 伺服电机是如何进行工作的?它的原理是什么?
- 无人机价钱多少?为什么说无人机烧钱?
- 以太网VPN技术概述
- 手机nfc功能打开好还是关闭好
- 十大公认音质好的无线蓝牙耳机
- 元宇宙概念龙头股一览