重映射就是将引脚功能重新定义到其他引脚, 例如PA9是USART1-TX默认的
管脚,但是现在PA9用做它用了,那可以将USART1-TX重新映射到PB6,当然这
种映射不是随意的想映射到哪个脚就哪个脚,芯片内部已经固定了只能映射到固
定的地方。
eg:
标准库重映射步骤为:(把串口PA9、PA10 重映射到 PA6、PA7)
1.打开重映射时钟和USART重映射后的I/O口引脚时钟,
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO,ENABLE);
2.I/O口重映射开启.
GPIO_PinRemapConfig(GPIO_Remap_USART1,ENABLE);
3.配制重映射引脚.这里只需配置重映射后的I/O,原来的I/O配置删除或保留都行
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_Init(GPIOB, &GPIO_InitStructure);
HAL库重映射(以定时器为例):
由上图可见:
部分重映射:只改变CH1、CH2管脚;
完全重映射:CH1~CH4管脚全部改变。
1. 在stm32f1xx_hal_gpio_ex.h找到重映射语句
2. 添加到管脚定义语句前
3. 完成