目录
端口复用的概念
内置外设的概念
端口复用的概念
端口复用的配置
配置示例(串口1)
复用GPIO的配置
STM32中文参考手册 110页
端口重映射概念
端口重映射概念
部分重映射
完全重映射
AFIO时钟
开启AFIO情况
重映射端口配置
端口复用的概念
内置外设的概念
- 除单片机内核外,单片机内部可实现功能的设备,如串口,ADC 等
端口复用的概念
- 为了节省单片机资源,采取内部外设引脚与GPIO引脚共用同一引脚,当GPIO做内部外设使用时叫做 复用
端口复用的配置
配置示例(串口1)
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);//①IO时钟使能
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);//②外设时钟使能
//③初始化IO为对应的模式
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);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;//PA10 PA.10 浮空输入
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;//浮空输入
GPIO_Init(GPIOA, &GPIO_InitStructure);
复用GPIO的配置
端口重映射概念
端口重映射概念
- 内部外设除其默认的复用端口外,还可以通过重映射,将其功能映射到其他端口
部分重映射
- 功能外设的部分引脚重新映射,还有一部分引脚是原来的默认引脚
完全重映射
下表为例
AFIO时钟
开启AFIO情况
- AFIO_MAPR:配置复用功能重映射
- AFIO_EXTICRX:配置外部中断线映射
-
AFIO_EVCR: 配置EVENTOUT事件输出
重映射端口配置
- 使能GPIO时钟(重映射后的IO);
- 使能功能外设时钟(例如串口1);
- 使能AFIO时钟。重映射必须使能AFIO时钟:
- RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
- 开启重映射。
-
GPIO_PinRemapConfig(GPIO_Remap_USART1, ENABLE);