STM32作为一款功能强大的集成芯片,内置了许多外设,这些外设的外部引脚都是与GPIO复用的。也就是说,一个GPIO如果可以复用为内置外设的功能引脚,那么当这个GPIO作为内置外设使用的时候,就叫做复用。而许多外设引脚除了拥有默认的端口外,还可以通过配置重映射寄存器,将引角映射到其他端口上,不仅是为了制版时布线方便,还可以潜在的减少信号的干扰。 1、端口复用的配置步骤 ① GPIO端口时钟使能。 ②复用外设时钟使能。 ③端口模式配置。(需要查找《STM32中文手册》中外设的GPIO的配置)需要该手册可以在公众号内回复:STM32中文手册; Z' |# t' J7 E 例:以PA9,PA10复用为串口1为例 //①IO时钟使能 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); //②外设时钟使能 RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE); //③初始化IO为对应的模式 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; //PA9复用推挽输出 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 浮空输入 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_Init(GPIOA, &GPIO_InitStructure); 9 [. y' }2 R1 h. ^0 [ 2、端口重映射的配置步骤(只有部分外设引脚具有重映射端口,具体需要查找数据手册)①使能GPIO时钟(重映射后的IO);3 g6 A# I; O6 X- ]: x4 B J ②使能功能外设时钟。: ^" d" e/ ]* P' m; h- O) z ③使能AFIO时钟,重映射必须使能AFIO时钟。 RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);" ^1 s8 |1 Z2 l9 R" [6 G' }7 m3 p ④ 开启重映射。 GPIO_PinRemapConfig(GPIO_Remap_USART1, ENABLE);& j) c3 d! D, q; N% f 注:需要根据第一个形参来确定是部分重映射还是全部重映射 " L7 H, P! @: H/ t$ s/ O5 ` H) ~ |
【MCU实战经验】+STM32F107的USB使用
基于STM32F103两轮平衡小车设计(开源)
STM32固件库分享,超全系列整理
STM32F107VCT6官方原理图和PCB
【福利】用STM32库的朋友有福了:STM32F10x_StdPeriph_Lib_V3.5.0chm...
小马哥STM32F103开源小四轴RoboFly全部资料大放送
基于STM32F10xx存储器和系统架构经验分享
基于STM32F1的CAN通信之BH1750
基于STM32F1的CAN通信之OLED
基于STM32F1的CAN通信之之串口IAP