目录
3. 接下来继续深究,如何指定PA9配置成AF7还时AF8呢?
一、GPIO的介绍、各引脚复用功能的配置
GPIO:General Purpose Input Output 通用用途输入输出
核心功能:输入、输出和高级外设的复用功能。
STM32G431RBT6:4个GPIO,64个引脚。
- GPIO A:PA0 ~ PA15
- GPIO B:PB0 ~ PB15
- GPIO C:PC0 ~ PC15
- GPIO D:部分
这些引脚类似于51单片机的P0口、P1口、P2口和P3口,但不同的是STM32引脚不是以数字分组,而是以字母为组。
51单片机的部分引脚除了普通I/O功能外还有复用功能,像P3.0和P3.1引脚的第二功能为TXD和RXD。而STM32的所有引脚都有复用功能,使用时一定要配置好各引脚是用作普通I/O(输出0和1)还是用作复用功能引脚(第二、三、四等功能)。
1. 如何查看STM32的复用功能是什么?
打开《STM32G431数据手册.pdf》第4.10节
第4.10节中Table12的Pin Number包含了9种不同的封装,我们这里使用的是LQFP64。
封装LQFP64 前5行 “ - ” 表示 “ 无 ” ,第1引脚从第6行开始。倒数第二列 Alternate function 列出了各引脚的复用功能。例如:第2引脚PC13的复用功能如下:
2. 知道了引脚的复用功能,接下来该如何配置呢?
打开《STM32G431数据手册.pdf》第4.11节
问:如果我想将 PA9 和 PA10 不作普通I/O,而分别用作串口的 TX 和 RX ,该如何配置呢?
答:把第4.11节的Table13看作一个坐标图。
- 当 “ 横坐标 ” 为AF7, “ 纵坐标 ” 为PA9时为串口的TX功能;
- 当 “ 横坐标 ” 为AF7, “ 纵坐标 ” 为PA10时为串口的RX功能。
3. 接下来继续深究,如何指定PA9配置成AF7还时AF8呢?
打开《STM32G4系列微控制器参考手册.pdf》第9.4.9 - 9.4.10节
参考手册的第9章就是专门介绍GPIO。
PA9为GPIO A中的一个引脚,所以这里为 GPIO A_AFRL 和 GPIO A_AFRH 。
将9.4.9与9.4.10结合,我们就可以得到一个完整的 AFSEL15[3:0] ~ AFSEL0[3:0] 即 PA15 ~ PA0(高位到低位)共16引脚。每一个 AFSEL[7:0][3:0] 都有4位:
rw | rw | rw | rw |
手册中也详细的列出了 AF0 ~ AF15 对应的配置,如下:
可以看到,AF7的配置为0111。
总结一下,PA9配置成AF7或是AF8需要进行一下操作:
- 首先,PA9 对应 GPIO A_AFRH 中的 AFSEL9[3:0] ;
- 其次,在 AFSEL9[3:0] 中,AF7 对应的 4位 为 0111、AF8 对应的 4位 为 1000 。