每组GPIO的常用寄存器:
1.两个32位的配置寄存器(GPIOx_CRL,GPIOx_CRH)
配置一个IO口需要4个位,32位寄存器只能配置8个IO口,一组有16个IO口,所以共需要两个寄存器。
GPIOA_CRL控制标号PA0-PA7的口,GPIOA_CRH控制PA8-PA15的口
控制每个IO口的4个位中,前两个位控制是输出模式还是输入模式,后两位控制输出或输入模式下的配置
前两位(如 位0:1):
00: 输入模式(复位后的状态)
01: 输出模式,最大速度10MHZ
10: 输出模式,最大速度2MHZ
11: 输出模式,最大速度50MHZ
后两位(如:位2:3)
输入模式下(前两位为00)
00:模拟输入模式
01:浮空输入模式(复位后的状态)
10:上拉/下拉输入模式
11:保留
输出模式下(前两位不为00)
00:通用推挽输出模式
01:通用开漏输出模式
10:复用功能推挽输出模式
11:复用功能开漏输出模式
2.两个32位数据寄存器(GPIOx_IDR,GPIO_ODR)
GPIOx_IDR输入数据寄存器 每个位控制一个IO口,标号0-15,对应的是IO口的输入电平
GPIO_ODR输出数据寄存器 高16位保留,始终读为;只使用低16位,每个位控制一个IO口的输出电平高或低,还可在输入模式下配置上拉或下拉
3.一个32位置位/复位寄存器(GPIOx_BSRR)
对于BSRR设置高电平时只要将对应的位设置为1,其余置为0;设置低电平时将对应的位设置为1,其余置为0
高16位: 0:对对应的ODRy位不产生影响 1:清除对应的ODRy位为0
低16位: 0:对对应的ODRy位不产生影响 1:设置对应的ODRy位为1
4.一个16位复位寄存器(GPIOx_BRR)
BRR寄存器的作用和BSRR的高位一样,通常使用BSRR寄存器的低16为和BRR寄存器的高16位
STM2的常用寄存器小结
猜你喜欢
转载自blog.csdn.net/qq_42158309/article/details/81281130
今日推荐
周排行