3.3 寄存器
每个GPIO共有16个端口,但STM32的寄存器为32位。所以读写寄存器只有低16位有对应的端口,高16位保留
“位带”:在STM32中,有一段专门的地址区域,这段地址映射了RAM和外设寄存器中所有的位。读写这段地址中的数据,相当于读写所映射位置的某一位
3.3.1 端口配置寄存器
- 每一GPIOx有16个端口,每一端口由4位进行配置,一共64位
- STM32中每一寄存器为32位,所以需要两个寄存器来配置一个GPIOx:端口配置低寄存器(GPIOx_CRL)和端口配置高寄存器(GPIOx_CRH)



3.3.2 端口输入数据寄存器

3.3.3 端口输出数据寄存器

3.3.4 端口位设置/清除寄存器
-
高16位进行位清除;低16位进行位设置
-
写1配置;写0不产生影响

3.3.5 端口位清除寄存器
- 该寄存器的低16位功能和端口位设置/清除寄存器的高16位功能相同
- 该寄存器主要是为了方便对单一端口进行设置(清除用X_BRR,配置用X_BSRR,这样就都是低16位)
- 如果想要对多个端口同时进行设置,只使用X_BSRR可保证同步性

