和stm32的GPIO相关的寄存器有
(1)两个32位的配置寄存器(GPIOX_CRL,GPIOX_CRH)
每一个IO占用4位,16个IO占用64位就是两个32为寄存器。
其中CNF[1:0]是用来配置模式的,其定义如下
MODE[1:0]是用来配置输入输出模式及输出模式下的端口速率的
(2)端口输入数据寄存器(GPIOX_IDR)
其中高16位是保留的,低十六位对应着16个IO口的数据位。
(3)端口输出数据寄存器(GPIOX_ODR)
其中高16位是保留的,低十六位对应着16个IO口的数据位。
(4)端口位设置/清除寄存器(GPIOX_BSRR)
其中的每一位的定义如下:
(5)端口位清除寄存器(GPIOX_BRR)
前面的16位是保留的,后面的十六位的定义如下:
感觉不理解的是上面已经有一个端口位设置/清除寄存器了,怎么还要独立的一个端口清除寄存器()
(6)端口配置锁定寄存器(GPIOX_LCKR)