复用功能分复用输入,复用输出,STM32芯片内部集成多种模块,如GPIO、串口、i2c等,为使IO端口支持这些模块,厂家对IO端口进行扩展,同一个端口通过设置寄存器会有不同的功能。如下图IO结构图:
STM32的复用功能由两个高、低的均为32位的寄存器组成:
(1) GPIO 复用功能低位寄存器 (GPIOx_AFRL)
(2) GPIO 复用功能高位寄存器 (GPIOx_AFRH)
复用功能寄存器4位为1小组,分别是AFL0~AFL7、AFH8~AFH15。
AFL0~AFL7 是和GPIOx0~GPIOx7一一对应,AFH8~AFH15和GPIOx8~GPIOx15一一对应。
STM32底层没有AFRH和AFRL寄存器,底层是封装成一个数组AFR[2],ARF[0]代表AFRL寄存器,AFR[1]代码AFRH寄存器。
示例:把GPIOA9 、GPIOA10设为复用功能,则有下面:
GPIOA9、GPIOA10分别对应: GPIOA->AFR[1] |= 7<<4 ; GPIOA->AFR[1] |= 7<<8 ;
注释:7表示AF7,为复用数据,4和8表示复用GPIO的位置. GPIOA9 、GPIOA10属于AFH8~AFH15的范畴。
IO口的复用功能可以查询 “STM32f405、407xxx数据手册”复用表:
原文地址:https://www.cnblogs.com/anSn/p/11614978.html
时间: 2024-11-05 23:38:11