stm32学习笔记 F1系列GPIO相关寄存器的配置

对于stm32  F1系列每组GPIO端口的寄存器包括:GPIOx_CRL ,GPIOx_CRH,GPIOx_IDR,GPIOx_ODR,GPIOx_BSRR,GPIOx_BRR和GPIOx_LCKR七个寄存器

其中:

 GPIOx_CRL为端口配置低寄存器;

GPIOx_CRH端口配置高寄存器

GPIOx_IDR为端口输入寄存器;

GPIOx_ODR为端口输出寄存器;

GPIOx_BSRR为端口位设置/清除寄存器;

GPIOx_BRR为端口位清除寄存器;

GPIOx_LCKR为配置锁存寄存器。

通过以上7个寄存器可以控制一组GPIO的16个IO口。

GPIOx_CRL GPIOx_CRH各32位,从0位开始每4位完成对一个IO口的配置,即通过设置GPIOx_CRL配置0-7口,通过设置GPIOx_CRH配置8-15口。

GPIOx_CRL的0-3位配置端口0为例:

0-1位设置端口0的模式00:输入模式 01:输出模式,最大速率为10MHz 10:输出模式,最大速率为2MHz 11:输出模式,最大速率为50MHz

2-3位设置端口0的配式

在输入模式下 00:模拟输入模式 01:浮空输入模式10:上拉/下拉输入模式(下拉输入ODR寄存器相对应位设置为0,上拉输入ODR寄存器相对应位设置为1)11:保留

在输出模式下 00:通用推挽输出模式 01:通用开漏输出模式10:复用功能推挽输出模式11:复用功能开漏输出模式

GPIOx_IDR 32位其中16-31位保留始终为0,0-15位为只读模式,读出值为对应IO口的状态。

GPIOx_ODR 32位其中16-31位保留始终为0,0-15位可读可写,可以分别对各个ODR位进行独立的设置/清除,

注:下拉输入ODR寄存器相对应位设置为0,上拉输入ODR相对应位设置为1。

GPIOx_BSRR 32位,其中:

0-15位为设置对应端口位,当值为0时对对应端口的ODR位不产生影响,当值为1时设置对应的ODR位为1。

16-31位为清除对应端口的位,当值为0时对对应端口的ODR位不产生影响,当值为1时清除对应的ODR位为0。

注:如果同时对同一端口对应的0-15位与16-31位进行了设置,0-15位起作用。

GPIOx_BRR 32位,16-31位保留,0-15位为清除对应端口的位,当值为0时对对应端口的ODR位不产生影响,当值为1时清除对应的ODR位为0。




你可能感兴趣的:(stm32)