STM32 GPIO重映射(转)

   重映射就是将引脚功能重新定义到其他引脚, 例如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. 完成

原文地址:https://www.cnblogs.com/xingboy/p/9592745.html