復用
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
+關注
關注
2283文章
10986瀏覽量
361234 -
端口
+關注
關注
4文章
1006瀏覽量
32634
原文標題:STM32基礎-端口復用及映射
文章出處:【微信號:c-stm32,微信公眾號:STM32嵌入式開發】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
端口復用映射原理及GPIO外設復用功能配置過程
談一談STM32單片機端口復用和端口重映射
基于STM32單片機的端口復用與端口重映射
IO引腳復用與映射

STM32單片機端口復用和端口重映射

評論