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

描述

复用

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

哪些端口可以复用为什么,这个查表就可以了

STM32

STM32

2,如何进行端口复用?

STM32


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

STM32

举例

STM32


除了ADC或者DAC配置为模拟之外,其他外设都要配置为复用

STM32

STM32

//完整版

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);

STM32


GPIOA5 复用为ADC1通道5 IO口

STM32

STM32

//先初始化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);//初始化

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分