STM32端口复用和重映射

本文详细介绍了STM32中端口复用的概念,即GPIO与内置外设引脚共享,以及如何配置串口1和串口2的复用模式。此外,还深入探讨了端口重映射技术,包括将外设引脚从默认位置映射到其他端口的方法,以实现串口2引脚从PA2、PA3到PD6、PD7的重映射。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、端口复用

1.什么是端口复用?

    STM32有很多内置外设,这些外设的外部引脚都是与GPIO复用的。也就是说,一个GPIO可以复用为内置外设的功能引脚。

例如串口1对应的引脚为PA9、PA10,串口2对应的引脚为PA2、PA3

2.端口复用的配置

   RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1|RCC_APB2Periph_GPIOA, ENABLE);    //不仅要使能GPIO,还要使能外设

USART_TX的引脚要配置为推挽复用输出

USART_RX的引脚要配置为浮空输入或带上拉输入。

二、端口重映射

    1.一般的引脚都是固定不变的,而端口重映射就是一个外设的引脚除了默认的引脚外,还可以通过设置重映射寄存器的方式,把这个外设的引脚映射到其它的端口。

    例如串口2的引脚是PA2、PA3,我们可以使其映射到PD6、PD7上。使用PD6、PD7进行数据的发送和接收。

    2.引脚重映射配置过程

    (1)使能GPIO时钟(重映射后的IO口)。

    (2)使能外设时钟(如使能串口1的时钟)。

    (3)使能AFIO时钟。因为是重映射所以必须使能AFIO时钟。

RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);

    (4)开启重映射

GPIO_PinRemapConfig(GPIO_Remap_USART1, ENABLE);

//串口3是支持部分重映射和全部重映射的

//下面两个参数是开启重映射的第一个参数

#define GPIO_PartialRemap_USART3    ((uint32_t)0x00140010)  /*!< USART3 Partial Alternate Function mapping 部分重映射*/

#define GPIO_FullRemap_USART3       ((uint32_t)0x00140030)  /*!< USART3 Full Alternate Function mapping 全部重映射*/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值