重映射就是将引脚功能从新定义到其余引脚, 例如PA9是USART1-TX默认的3d
管脚,可是如今PA9用作它用了,那能够将USART1-TX从新映射到PB6,固然这blog
种映射不是随意的想映射到哪一个脚就哪一个脚,芯片内部已经固定了只能映射到固ip
定的地方。it
eg:io
标准库重映射步骤为:(把串口PA九、PA10 重映射到 PA六、PA7)配置
1.打开重映射时钟和USART重映射后的I/O口引脚时钟, map
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO,ENABLE);定时器
2.I/O口重映射开启.im
GPIO_PinRemapConfig(GPIO_Remap_USART1,ENABLE);d3
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库重映射(以定时器为例):
由上图可见:
部分重映射:只改变CH一、CH2管脚;
彻底重映射:CH1~CH4管脚所有改变。
1. 在stm32f1xx_hal_gpio_ex.h找到重映射语句
2. 添加到管脚定义语句前
3. 完成