【STM32】GPIO复用和映射

1.什么叫管脚复用

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

STM32F4系列微控制器IO引脚通过一个复用器连接到内置外设或模块。该复用器一次只允许一个外设的复用功能(AF)连接到对应的IO口。这样可以确保共用同一个引脚的外设直接不会发生冲突。

1.1系统功能

将 I/O 连接到 AF0,然后根据所用功能进行配置:

  • JTAG/SWD:在各器件复位后,会将这些引脚指定为专用引脚,可供片上调试模块立即使用(不受 GPIO 控制器控制)。
  • RTC_REFIN:此引脚应配置为输入浮空模式。
  • MCO1 和 MCO2:这些引脚必须配置为复用功能模式。

2.端口复用配置过程

针对STM32F407。

  1. GPIO端口时钟使能
  2. 复用外设时钟使能
  3. 端口模式配置为复用功能
  4. 配置引脚映射(有的教程没有这一步,可能是标准库版本较新,在GPIO配置初始化的时候就会配好)

3.PA9,PA10复用为串口1的配置过程

c 复制代码
void Init_USART(void)
{
	RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA,ENABLE);//使能GPIOA时钟
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);//使能USART1时钟
	
	//USART1端口配置
	GPIO_InitTypeDef GPIO_InitStruct;
	GPIO_InitStruct.GPIO_Pin=GPIO_Pin_9|GPIO_Pin_10;
	GPIO_InitStruct.GPIO_Mode=GPIO_Mode_AF;//复用功能
	GPIO_InitStruct.GPIO_OType=GPIO_OType_PP;//推挽复用输出
	GPIO_InitStruct.GPIO_PuPd=GPIO_PuPd_UP;//上拉
	GPIO_InitStruct.GPIO_Speed=GPIO_Fast_Speed;//速度50MHz
	GPIO_Init(GPIOA,&GPIO_InitStruct);//初始化PA9,PA10
	
	//USART1对应引脚复用映射
	GPIO_PinAFConfig(GPIOA, GPIO_PinSource9,GPIO_AF_USART1);//PA9复用为USART1
	GPIO_PinAFConfig(GPIOA, GPIO_PinSource10,GPIO_AF_USART1);//PA10复用为USART1
}

这个配置了怎么使用呢,我们在以后再讲解。但是我们咋知道哪个外设复用哪个引脚呢?

其实,需要查看手册,在另外一个产品手册中有表格。

但是我们咋知道哪个外设复用哪个引脚呢?

其实,需要查看手册,在另外一个产品手册中有表格。

相关推荐
Brilliantwxx17 分钟前
【STM32】 从HAL库源码深度解析I2C(源码解析+面试题)
开发语言·stm32·单片机·嵌入式硬件·架构
xx~t19 分钟前
嵌入式——ARM——汇编1
linux·汇编·arm开发·嵌入式硬件·arm
H_oRIZoN_1 小时前
Linux入门DAY44 ARM 入门 Day02|ARM 汇编指令、模式切换、栈操作、汇编 C 混合编程
linux·单片机·嵌入式硬件·arm·linux应用编程
国科安芯3 小时前
卫星电源管理系统中宽温域低功耗MCU的选型与适应性分析
嵌入式硬件·mcu·抗干扰·抗辐射·宽温
老当益壮梁奶奶11 小时前
51单片机DS18B20温度传感器详解:单总线时序与C51驱动实现
笔记·stm32·单片机·嵌入式硬件·51单片机
Horn Still Sounds11 小时前
ARM嵌入式基础|内核、寄存器、架构、存储、汇编移位全面梳理
arm开发·单片机·嵌入式硬件·硬件架构
星栖与芯11 小时前
LiteOS-M 切换汇编逐行图解(2):指令·异常机制·全景表
stm32·单片机·嵌入式硬件·harmonyos·鸿蒙系统
Brilliantwxx13 小时前
【STM32】 I2C阻塞通信实战与HAL源码(教程篇)
stm32
从零开始的嵌入式之旅13 小时前
day44
arm开发·经验分享·笔记·嵌入式硬件
硬禾科技15 小时前
连接世界的工程哲学
嵌入式硬件·测试工具·自动化·硬件工程