GPIO(下)

3.3 寄存器

每个GPIO共有16个端口,但STM32的寄存器为32位。所以读写寄存器只有低16位有对应的端口,高16位保留

“位带”:在STM32中,有一段专门的地址区域,这段地址映射了RAM和外设寄存器中所有的位。读写这段地址中的数据,相当于读写所映射位置的某一位

3.3.1 端口配置寄存器

  • 每一GPIOx有16个端口,每一端口由4位进行配置,一共64位
  • STM32中每一寄存器为32位,所以需要两个寄存器来配置一个GPIOx:端口配置低寄存器(GPIOx_CRL)和端口配置高寄存器(GPIOx_CRH)

image-20251117145118472

image-20251117145027906

3.3.2 端口输入数据寄存器

image-20251117145858290

3.3.3 端口输出数据寄存器

image-20251117145920136

3.3.4 端口位设置/清除寄存器

  • 高16位进行位清除;低16位进行位设置

  • 写1配置;写0不产生影响

image-20251117150139916

3.3.5 端口位清除寄存器

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

image-20251117150208429

image-20251117150232070

posted @ 2025-11-17 15:08  LI,Yi-han  阅读(1)  评论(0)    收藏  举报