【单片机】详细解析完全重映射和部分重映射

1、重映射的作用

单片机中的每个引脚通常都有多个功能,不仅仅是作为普通的输入或输出,还可以与某些外设(如定时器、串口、SPI、I2C等)关联。默认情况下,这些外设功能通常固定绑定到特定的GPIO引脚。但是,在某些情况下,默认的引脚配置可能不适合实际电路设计或项目需求,因此需要将外设功能重新映射到其他GPIO引脚,这就是GPIO重映射。

单片机内部有一个重映射控制寄存器配置寄存器,通过设置该寄存器,可以改变外设功能与GPIO引脚之间的关联。通过特定的寄存器位,开发者可以选择某个外设功能是否重映射,以及重映射到哪个引脚。

2、部分重映射与完全重映射

部分重映射指的是仅对某个外设的部分引脚进行重定向,将外设的某些功能从默认引脚重新映射到其他GPIO引脚上。通常情况下,部分重映射意味着只重定向部分功能引脚,其他功能引脚仍然保持默认设置。

完全重映射是指将整个外设的所有引脚都重新映射到不同的GPIO引脚。这种方式下,外设的所有功能(如TX、RX、时钟引脚等)都将被映射到不同的引脚上,而不是只部分重映射。

其中,REMAP=0表示为默认引脚,REMAP为1(01)和2(01)时代表部分重映射,REMAP为3(11)时表示完全重映射。

3、结合用户手册、数据手册以及代码

这里以定时器的重映射 作为演示,下面是用户手册中有关定时器重映射的表格:

我们看一下图中的TIMER1,当没有重映射时(00),定时器的四个通道默认选择的是PA0、PA1、PA2、PA3;

当**部分重映射(10)**时,CH0和CH1还是选择的默认的PA0、PA1,而CH32与CH3选择了新的引脚,PB10与PB11,在这个时候,我们看一下数据手册中这两个引脚:

当**完全重映射(11)**时,四个引脚全部选择了默认引脚以外的全部引脚,分别为PA15、PB3、PB10、PB11,我们也可以在数据手册中看一下另外两个引脚:

最后再结合代码看一下,可以看到他们的重映射值的值

4、重映射功能配置代码(以定时器为例)

1. 使能时钟

首先我们需要使能相关的时钟,比如GPIOA的时钟和TIMER1的时钟。

复制代码
rcu_periph_clock_enable(RCU_GPIOA);  // 使能GPIOA时钟
rcu_periph_clock_enable(RCU_AF);     // 使能AFIO时钟
rcu_periph_clock_enable(RCU_TIMER1); // 使能TIMER1时钟
2. 配置GPIO引脚

将GPIO引脚(如PA8)配置为复用功能模式(AF,Alternate Function)。

3. 配置TIMER1

初始化TIMER1以产生PWM信号或者用于其他定时功能。

4. 使能部分重映射功能

通过配置寄存器启用部分重映射。

复制代码
gpio_pin_remap_config(GPIO_TIMER1_PARTIAL_REMAP1, ENABLE);
相关推荐
weixin_11223310 小时前
基于STM32闭环步进电机控制系统设计说明
stm32·单片机·嵌入式硬件
机器视觉知识推荐、就业指导11 小时前
STC89C52系列单片机简介
单片机·嵌入式硬件·51单片机
qq_259297247312 小时前
STM32
嵌入式硬件
qq_21513832713 小时前
【51单片机-B020】【protues仿真】基于51单片机智能晾衣架仿真
单片机·嵌入式硬件
小猪写代码13 小时前
STM32 GPIO的八种工作模式
stm32·单片机·嵌入式硬件·gpio
1+2单片机电子设计13 小时前
STM32 单片机的停车场管理系统设计与实现
stm32·单片机·嵌入式硬件·51单片机
如愿小李14 小时前
STM32之土壤湿度传感器模块
stm32·单片机·嵌入式硬件
weixin_5803820615 小时前
UART Hal库与寄存器比较
stm32·单片机·嵌入式硬件
fei_sun20 小时前
Easy ARM2132
单片机·嵌入式硬件