stm32的AFIO是什么意思

我初学,不知道复用是什么意思,先谢谢了
2024年11月20日 04:48
有3个网友回答
网友(1):

意思是如果在你的程序中,某些外设用的是复用IO口,就必须开该复用时钟。
比如在STM32F103VET6中USART3的IO口为(TX/PB10,RX/PB11)。但是如果你要是将给外设IO口映射到(TX/PC10,RX/PC11)或者(TX/PD8,RX/PD9),那就必须开启AFIO时钟了,否则外设不会正常工作。

网友(2):

可靠的蓄势:你举的例子是IO口重映射,不是IO口复用。IO口复用不必使能AFIO,重映射时需使能AFIO。 具体如下: 操作AFIO的三类寄存器时需要开启: AFIO_EVCR AFIO_MAPR AFIO_EXTICRx 这三类其实是AFIO的全部寄存器, AFIO_EVCR是事件相关的,AFIO_MAPR是与重映射相关的,AFIO_EXTICRx是与外部中断相关的。 因此管脚重映射、外部中断、事件时开启。

网友(3):

与AFIO 相关的寄存器有:
1、 事件控制寄存器(AFIO_EVCR)
2、 复用重映射和调试I/O 配置寄存器(AFIO_MAPR)
3、 外部中断配置寄存器1(AFIO_EXTICR1)
4、 外部中断配置寄存器2(AFIO_EXTICR2)
5、 外部中断配置寄存器3(AFIO_EXTICR3)
6、 外部中断配置寄存器4(AFIO_EXTICR4)
※所以,只要是对对寄存器 AFIO_EVCR、AFIO_MAPR 和 AFIO_EXTICRX 进行读写操作前,就要打开 AFIO 的时钟,而不仅仅是重映射的时候才打开!!!
从这些寄存器的定义知道,这些寄存器是用于“事件控制”、“重映射”、“调试IO配置”、“外部中断”的。例如 AFIO_EXTICRX 用于选择 EXTIx 外部中断的输入源。
总结:当我们需要配置这些 AFIO 寄存器的时候,就需要打开 RCC_APB2ENR 寄存器的 AFIO 时钟,而不是用到引脚复用功能的时候打开。