浅谈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复用和重映射的主要内容,如果未能解决你的问题,请参考以下文章