什么是端口复用
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