复用
STM32有很多的内置外设,这些外设的外部引脚都是与GPIO复用的。也就是说,一个GPIO如果可以复用为内置外设的功能引脚,那么当这个GPIO作为内置外设使用的时候,就叫做复用。
哪些端口可以复用为什么,这个查表就可以了


2,如何进行端口复用?

比如AF1要复用到TIM1;
通过设置AFRL寄存器和AFRH寄存器
就可以AF1----->TIM1;
一组IO口有16个 GPIOAF0~15
AFRL负责低八位IO
AFRH负责高八位IO

举例



//完整版
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9|GPIO_Pin_10;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;//复用
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;//上拉
GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化GPIOA.9,10
GPIO_PinAFConfig(GPIOA,GPIO_PinSource9,GPIO_AF_USART1);
GPIO_PinAFConfig(GPIOA,GPIO_PinSource10,GPIO_AF_USART1);

GPIOA5 复用为ADC1通道5 IO口


//先初始化ADC1通道5 IO口
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;//PA5 通道5
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AN;//模拟输入
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL ;//不带上下拉
GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化
-
STM32
+关注
关注
2305文章
11120浏览量
371149 -
端口
+关注
关注
4文章
1098浏览量
33830
原文标题:STM32基础-端口复用及映射
文章出处:【微信号:c-stm32,微信公众号:STM32嵌入式开发】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
端口复用映射原理及GPIO外设复用功能配置过程
谈一谈STM32单片机端口复用和端口重映射
基于STM32单片机的端口复用与端口重映射
IO引脚复用与映射
STM32单片机端口复用和端口重映射

一文详解STM32端口复用及映射
评论