单片机 > 单片机程序设计 > 详情

STM32的GPIO的复用功能和重映射功能

发布时间:2024-08-28 发布时间:
|

1、复用功能:内置外设是与I/O口共用引出管脚(不同的功能对应同一管脚)

STM32 所有内置外设的外部引脚都是与标准GPIO引脚复用的,如果有多个复用功能模块对应同一个引脚,只能使能其中之一,其它模块保持非使能状态。

2、重映射功能:复用功能的引出脚可以通过重映射,从不同的I/O管脚引出,即复用功能的引出脚位是可通过程序改变到其他的引脚上!

直接好处:PCB电路板的设计人员可以在需要的情况下,不必把某些信号在板上绕一大圈完成联接,方便了PCB的设计同时潜在地减少了信号的交叉干扰。

如:USART1: 0: 没有重映像(TX/PA9,RX/PA10); 1: 重映像(TX/PB6,RX/PB7)。

(参考AFIO_MAPR寄存器介绍)[0,1为一寄存器的bit值]

【注】 下述复用功能的引出脚具有重映射功能:

  - 晶体振荡器的引脚在不接晶体时,可以作为普通I/O口

  - CAN模块; - JTAG调试接口;- 大部分定时器的引出接口; - 大部分USART引出接口

  - I2C1的引出接口;  - SPI1的引出接口;

举例:

对于STM32F103VBT6,47引脚为PB10,它的复用功能是I2C2_SCL和 USART3_TX,表示在上电之后它的默认功能为PB10,而I2C2的SCL和USART3的TX为它的复用功能;另外在TIM2的引脚重映射后,TIM2_CH3也成为这个引脚的复用功能。

(1)要使用STM32F103VBT6的47、48脚的USART3功能,则需要配置47脚为 复用推挽输出 或 复用开漏输出 ,配置48脚为某种输入模式,同时使能USART3并保持I2C2的非使能状态。

(2)使用STM32F103VBT6的47脚作为TIM2_CH3,则需要对TIM2进行重映射,然后再按复用功能的方式配置对应引脚. 

要使用某个引脚的复用功能时,在开启了对应引脚的GPIO时钟和功能模块时钟的前提下,需要作如下配置:
1)在配置该引脚的GPIO时,选择推挽复用输出(AF_PP)或开漏复用输出(AF_OD)
2)使能对应功能的模块
3)不要使能不用的功能的模块

以下为参考手册中内容:

8.1.4  复用功能(AF)

使用默认复用功能前必须对端口位配置寄存器编程。

● 对于复用的输入功能,端口必须配置成输入模式(浮空、上拉或下拉)且输入引脚必须由外部驱动。

● 对于复用输出功能,端口必须配置成复用功能输出模式(推挽或开漏)。

● 对于双向复用功能,端口位必须配置复用功能输出模式(推挽或开漏)。这时,输入驱动器被配置成浮空输入模式。


如果把端口配置成复用输出功能,则引脚和输出寄存器断开,并和片上外设的输出信号连接。

如果软件把一个GPIO脚配置成复用输出功能,但是外设没有被激活,它的输出将不确定。


关键字:STM32  GPIO  复用功能  重映射功能 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
MSP430低功耗模式-while循环失效