如何访问STM32开发学习板寄存器内容

 时间:2026-02-16 17:27:25

1、今天小编从一个例子入手来讲如何访问STM32开发学习板寄存器,所谓的访问寄存器也就是说要找到寄存器,在单片机中寄存器都是以地址所表示的,所有访问寄存器必须找到对应寄存器的地址,接下来从一个例子入手:STM32的GPIOF的第9管脚输入低电平,下图上寄存器的地址最高级分配,由于GPIOF属于片上外设,所有在Block2上,所以地址就是在Block2的地址范围中,先使用C语言定义一下Block2基地址:#define  PERIPH_BASE  ((unsigned int)0x40000000)如下图:

如何访问STM32开发学习板寄存器内容

2、然后再来看一下GPIOF在Block2的哪个总线上,打开STM32F4xx中文参考手册中查找到存储器组织结构查看STM32F4xx寄存器边界地址,下图中红色箭头指示位置可以看到GPIOF输入AHB1总线,如下图:

如何访问STM32开发学习板寄存器内容

3、然后定义一下各个总线的地址:#define APB1PERIPH_BASE PERIPH_BASE#define APB2PERIPH_BASE (PERIPH_BASE + 0x00010000)#define AHB1PERIPH_BASE (PERIPH_BASE + 0x00020000)#define AHB2PERIPH_BASE (PERIPH_BASE + 0x10000000)如下图:

如何访问STM32开发学习板寄存器内容

4、下图中是外设相对于AHB1总线地址偏移,定义一下GPIOF的地址:#define GPIOF_BASE (AHB1PERIPH_BASE + 0x1400)如下图:

如何访问STM32开发学习板寄存器内容

5、下图中是寄存器相对于外设地址偏移,我们设置TM32的GPIOF的第9管脚输入低电平,就是要复位,这里需要设置BSRR(置位、复位寄存器),如下图:

如何访问STM32开发学习板寄存器内容

6、继续查看STM32F4xx中文参考手册查找到GPIO端口置位/复位寄存器,然后偏移地址为18,定义一下BSRR寄存器地址: #define GPIOF_BSRR (GPIOF_BASE+0x18)从下图中可以看出BSRR寄存器有32位,对应GPIOF的16个端口,然后16位用于置位、16位用于复位如下图:

如何访问STM32开发学习板寄存器内容

7、下图中就是复位的C语言表示,GPIOF_BSRR是寄存器地址宏定义,C语言会认为这只是个立即数,所以使用(unsigned int*)这样来强制将这个GPIOF_BSRR寄存器地址宏定义转换成地址,然后前面再次加入一个【*】号,这个表示将对应地址的内容进行设置,后面的(0x01<<(16+9))表示将1值赋予的第16+9位,这样写的好处是便于阅读,如下图:

如何访问STM32开发学习板寄存器内容

8、下图中的是GPIOF的第9管脚的置位C语言表示,如下图:

如何访问STM32开发学习板寄存器内容

  • Labview中TCP发送端程序如何设计
  • Ubuntu怎么更换桌面壁纸
  • ubuntu14.04 ,window双系统教程(U盘启动)
  • python2.7安装pip
  • LoRa模块怎么用 如何通过PC端配置参数
  • 热门搜索
    虎皮鹦鹉怎么养 牙龈发炎怎么办 含羞草怎么养 怎么办银行卡 食物中毒怎么办 精索静脉曲张怎么办 我的世界马怎么繁殖 wifi怎么设置密码 水果沙拉怎么做 眼睛红血丝怎么消除