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

初学STM32对AFIO的简单理解

发布时间:2020-06-01 发布时间:
|

在配置PC13引脚的外部线中断时,配置其外挂时钟时用到了复用功能:

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC|RCC_APB2Periph_AFIO,ENABLE);

原因是PC13的第一功能引脚是GPIO,第二功能引脚是TAMER-RTC1,并没有EXTI的功能,要想用它产生外部线中断,必须配置AFIO复用功能,将EXTI功能映射到PC13引脚上。

PC13引脚功能图

又例:

CAN总线用到了PB8、PB9,而这两个引脚本身没有CAN功能,需要重映射:

RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO | RCC_APB2Periph_GPIOB, ENABLE);



PB8、PB9引脚功能图



CAN&485 TR引脚图



而有的配置是不需要配置复用功能的,例如:UASRT1的引脚PA9、PA10,它们的第二功能引脚就是USART功能,所以在使用UASRT功能的时候,就不能再AFIO配置时钟。

在配置RCC外挂时钟的时候,既要配置基础的GPIO模式,又要配置其第二功能USART的时钟。


而用到了PA9的第二引脚,有一种输出模式是复用输出模式,所以要配置成复用输出模式。

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;



由于USART和GPIOA都外挂在RCC_APB2上,所以参数是两个值的组合。

/* config USART1 clock */
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1 | RCC_APB2Periph_GPIOA, ENABLE);



关键字:STM32  AFIO 

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

热门文章 更多
C51 特殊功能寄存器SFR的名称和地址