映射信息查询
当我们想开启片上外设对接的哪个IO口应该如何查找?
打开数据手册 通过Ctrl + F搜索
①根据IO口搜索看管脚有哪些复用功能
②根据需要的复用功能搜索看连接到哪些IO口
如我需要知道PC6引脚可以复用为哪些定时器,搜索即可知道有TIM8_CH2和TIM3_CH2
映射在硬件上的含义
如PC6管脚所示,在芯片硬件设计上,有一个复用器让IO口与其他片上外设相连接
复用器相当于一个选择开关,当需要哪个复用功能就开启哪条通道。
复用功能寄存器介绍
将IO管脚的模式寄存器配置为复用功能在此就不多赘述;
我们需要确定的是低位复用寄存器和高位复用寄存器
低位复用寄存器管理的是端口的0~7号管脚
高位复用寄存器管理的是端口的8~15号管脚
从表中可以看出每4bit控制一个管脚的片上外设映射关系配置
复用功能寄存器配置
那么该如何写值开启对应的复用功能呢?
其中复用编码号AF0~AF15对应的是什么?
中文参考手册---7.3.2 I/O 引脚复用器和映射
复用功能编号:
若我需要PC6引脚的TIM3_CH1复用功能,则向复用功能低位寄存器写入AF2对应的编码值
由图表可以看出,管脚6在GPIOx_AFRL[27:24]配置,即在该4位写入AF2对应的编码值即可
复用功能编号AF2的编码值是0010,在GPIOx_AFRL[27:24]写入0010,即可开启TIM3的复用功能
在keil5中如何调用复位寄存器?
复用功能低位寄存器GPIOx_AFRL ===》 GPIOx->AFR[0]
复用功能高位寄存器GPIOx_AFRH ===》 GPIOx->AFR[1]