STM32 端口复用重映射

Posted 一只小阿大:)

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了STM32 端口复用重映射相关的知识,希望对你有一定的参考价值。

什么是端口复用

STM32有很多个外设,外设的外部引脚与GPIO复用。也就是说一个GPIO可以重复使用外设的引脚,这个GPIO作为内置外设使用的时候,就叫做复用

举例:
GPIOA 9 可以作为普通PGIO使用,引脚复用为串口1的发送
GPIOA 10 可以作为普通PGIO使用,引脚复用为串口1的接收
GPIOA1 可以作为普通PGIO使用,复用为外部中断

举例:
串口1的发送接收引脚为PA9 PA10,我们把这两个引脚不用做PGIO,而复用为串口1的发送和接收引脚,叫做端口复用。

如何配置端口复用

端口复用配置过程:(以 USART1 : PA9 PA10串口 为例)

1.配置GPIO时钟:
RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA, ENABLE);
2.配置USART1时钟:
RCC_APB2PeriphClockCmd( RCC_APB2Periph_USART1, ENABLE);
3.如何配置相对应的GPIO模式

如何配置端口复用

在这里插入图片描述
USART_TX 发送端IO口 : 推挽复用输出模式
GPIO_Mode = GPIO_Mode_AF_PP;
USART_RX 接收端IO口 : 浮空输入/上拉输入
GPIO_Mode = GPIO_Mode_IN_FLOATING / GPIO_Mode = GPIO_Mode_IPU

在这里插入图片描述

1.配置GPIO时钟
2.配置复用的USART1时钟
3.配置GPIO结构体

什么是端口重映射

每个外设都有若干个输入输出引脚,一般这些引脚也都是固定不变的,但为了让开发工程师更好的安排引脚的功能和走向,引入了重映射的功能。 也就是一个外设的引脚除了具有默认的端口外,也还可以设置重映像寄存器来把这个外设映射到其他GPIO端口。
方便硬件工程师布线,减少干扰。
在这里插入图片描述

什么是部分重映射和完全重映射

部分重映射: 功能外设的部分引脚重新映射,还有一部分引脚是原来的默认引脚。

完全重映射: 功能外设的所有引脚都是重新映射。
在这里插入图片描述

重映射的配置过程

串口1为例:

① 使能GPIO引脚(重映射后的GPIO引脚)
②使能功能外设
③使能AFIO时钟,重映射必须使能AFIO时钟
RCC_APB2PeriphClockCmd( RCC_APB2Periph_AFIO, ENABLE);
④开启重映射:
void GPIO_PinRemapConfig(uint32_t GPIO_Remap, FunctionalState NewState);

案例看下篇文章STM32 通用定时输出PWM

以上是关于STM32 端口复用重映射的主要内容,如果未能解决你的问题,请参考以下文章

STM32端口复用和重映射

STM32 端口复用重映射

STM32端口复用和重映射

嵌入式02 STM32 实验01 端口复用和重映射

浅谈STM32的GPIO复用和重映射

USART3不实用端口重映射,还用使能AFIO吗