单片机端口复用和重映射

STM32的端口复用允许GPIO引脚与内置外设功能共享,如配置GPIO为复用推挽输出以用作串口通信。同时,通过重映射功能,可以将外设引脚从默认端口映射到其他端口,实现更灵活的硬件设计。文章介绍了如何启用外设和GPIO时钟,配置GPIO模式以及执行端口重映射的步骤。
摘要由CSDN通过智能技术生成

端口复用

这里以定时器为例:

STM32内置外设的外部引脚与GPIO复用。GPIO可以作为内置外设功能引脚复用。

简单的说就是配置内部外设时,正常开启时钟,然后GPIO需要设置复用模式,比如复用推挽输出

配置方式

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);

GPIO_InitTypeDef GPIO_InitStructure;

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; //PA.9

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;//复用推挽输出

GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化GPIOA.9

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;//PA10

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;//浮空输入

GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化GPIOA.10

//后面自行配置内部外设串口初始化

端口重映射

重映射分为部分重映射和完全重映射,我们可以通过设置重映射寄存器,把外设引脚从默认端口映射到其它端口。

为了使不同器件封装的外设IO功能数量达到最优,可以把一些复用功能重新映射到其他一些引脚上。STM32中有很多内置外设的输入输出引脚都具有重映射(remap)的功能。

例如:串口1的TX,RX引脚在PA9,PA10端口,也可以通过重映射使用PB6,PB7端口。

配置方式

//使能GPIO时钟

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);

//使能外设时钟

RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);

//使能AFIO时钟

RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);

//开启重映射 

GPIO_PinRemapConfig(GPIO_Remap_USART1, ENABLE);

//后面自行配置初始化内容

使能AFIO时钟的原因

为了读写AFIO_MAPR、AFIO_EXTICRX和AFIO_EVCR寄存器,以配置复用功能重映射、外部中断线映射和EVENTOUT事件输出。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值