浅谈STM32的GPIO复用和重映射

Posted stmplayer

tags:

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

端口复用

STM32的端口复用用起来是非常简单的,会使用即可,不必在开始就深究原理。

STM32板有许多的外设,比如ADC,USART,红外模块,温度传感器的插口等。为了让单片机外部引脚达到更高的利用,所以就有了端口复用的产生。端口复用指的是把一个引脚用来控制其他的内部外设,如USART时,就叫做端口复用。

下面举个端口复用的例子:

PA9用它做GPIO的话只需给端口时钟使能,再进行初始化即可。:RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);

当PA9用来做串口通信时则需要先给端口使能,再给他的外设时钟使能,再进行初始化即可:

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);

RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE); 

初始化时按照需求设置输入输出模式。

所以端口复用操作的区别也就是多进行了一次外设时钟使能。

端口重映射

为了使不同器件封装的外设 IO 功能数量达到最优,可以把一些复用功能重新映射到其他一 些引脚上。

比如USART1的端口重映射。

原来复用使用的PA9,PA10引脚,经过端口重映射可以将USART的使用接口换到PB6,PB7上。其他重映射自己可以看STM32手册。

USART1的端口重映射的操作过程为:

1.使能 GPIOB 时钟: RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);

2.使能串口 1 时钟: RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);

3.使能 AFIO 时钟: RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);

4.开启重映射: GPIO_PinRemapConfig(GPIO_Remap_USART1, ENABLE)

这样就将串口的 TX 和 RX 重映射到管脚 PB6 和 PB7 上面了。

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

stm32端口复用与重映射

STM32端口复用和重映射

端口复用和重映射

STM32端口复用和重映射

STM32 端口复用重映射

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