復(fù)用
STM32有很多的內(nèi)置外設(shè),這些外設(shè)的外部引腳都是與GPIO復(fù)用的。也就是說(shuō),一個(gè)GPIO如果可以復(fù)用為內(nèi)置外設(shè)的功能引腳,那么當(dāng)這個(gè)GPIO作為內(nèi)置外設(shè)使用的時(shí)候,就叫做復(fù)用。
哪些端口可以復(fù)用為什么,這個(gè)查表就可以了
2,如何進(jìn)行端口復(fù)用?
比如AF1要復(fù)用到TIM1;
通過(guò)設(shè)置AFRL寄存器和AFRH寄存器
就可以AF1----->TIM1;
一組IO口有16個(gè) GPIOAF0~15
AFRL負(fù)責(zé)低八位IO
AFRH負(fù)責(zé)高八位IO
舉例
除了ADC或者DAC配置為模擬之外,其他外設(shè)都要配置為復(fù)用
//完整版
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;//復(fù)用
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 復(fù)用為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
+關(guān)注
關(guān)注
2264文章
10854瀏覽量
354299 -
端口
+關(guān)注
關(guān)注
4文章
948瀏覽量
31985
原文標(biāo)題:STM32基礎(chǔ)-端口復(fù)用及映射
文章出處:【微信號(hào):c-stm32,微信公眾號(hào):STM32嵌入式開發(fā)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論