-
端口复用
端口复用是一种允许一个GPIO引脚在不同的功能模式之间切换的特性,以满足不同外设的需求。也就是说,一个 GPIO
如果可以复用为内置外设的功能引脚,那么当这个 GPIO 作为内置外设使用的时候,就叫做复用。复用端口初始化步骤(以PA9、PA10复用为USART1为例):
- GPIO 端口时钟使能
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
- 复用的外设时钟使能(这里为USRT1)
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);
- 端口模式配置
这里可以查看《STM32中文手册》复用功能配置一节
//USART1_TX PA.9 复用推挽输出 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; //PA.9 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; //复用推挽输出 GPIO_Init(GPIOA, &GPIO_InitStructure); //USART1_RX PA.10 浮空输入 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;//PA10 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;//浮空输入 GPIO_Init(GPIOA, &GPIO_InitStructure);
- GPIO 端口时钟使能
-
端口重映射
端口重映射是一种允许将特定功能引脚重新映射到不同GPIO端口的功能,以实现引脚功能的灵活配置。-
部分重映射:在部分重映射模式下,一些特定的外设功能引脚可以被重新映射到另外的GPIO引脚,但并不改变所有引脚的功能。
-
完全重映射: 在完全重映射模式下,所有与特定外设相关的引脚都被重新映射到另外的GPIO引脚,这意味着外设所需的所有引脚都发生了变化。
下图是定时器3的重映射功能表
-
端口重映射步骤(同样以串口1为例):
- 使能 GPIOB 时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
- 使能串口 1 时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);
- 使能 AFIO 时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
- 开启重映射
GPIO_PinRemapConfig(GPIO_Remap_USART1, ENABLE);
- 使能 GPIOB 时钟
-
STM32系列(一)端口复用和重映射
于 2023-09-25 13:30:21 首次发布