一、复用功能映射配置
1、系统功能
将I/O连接到AF0,然后根据所用功能进行配置:
JATG/SWD:在各器件复位后,会将这些引脚指定为专用引脚,可供片上调试模块立即 使用(不受GPIO控制器控制)
RTC_REFIN:此引脚应配置为输入浮空模式。
MCO1/MCO2:这些引脚必须配置为复用功能模式
2、GPIO
在GPIOx_MODER寄存器中将所需I/O配置为输出或输入
3、设置复用功能
对于ADC和DAC:在GPIOx_MODER寄存器中将所需I/O配置为模拟通道。
对于其他外设:
在GPIOx_MODER寄存器中将所需I/O配置为复用功能。
通过GPIOx_OTYPER、GPIOx_PUPDR和GPIOx_OSPEEDER寄存器,分别选择类型、上下拉以及输出速度。
在GPIOx_AFRL或GPIOx_AFRH寄存器中,将I/O连接到所需AFx。
二、实例
端口复用为复用功能配置过程(以PA9,PA10配置为串口1为例)
1、GPIO端口时钟使能
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA,ENABLE);
2、复用外设时钟使能
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);
3、端口模式配置为复用功能
GPIO_InitStructure GPIO_Mode = GPIO_Mode_AF;
4、配置GPIOx_AFRL或者GPIOx_AFRH寄存器,将IO连接到所需的AFx
/*PA9连接AF7,复用为USART1_TX*/
GPIO_PinAFConfig(GPIOA,GPIO_PinSource9,GPIO_AF_USART1);
/*PA10连接AF7,复用为USART1_RX*/
GPIO_PinAFConfig(GPIOA,GPIO_PinSource10,GPIO_AF_USART1);