目录
四、STM32内部资源地址、存储器空间
在第二节我们讨论过,STM内部的资源非常多,有定时器、串口等等。
(第二节地址: https://blog.youkuaiyun.com/weixin_46409367/article/details/119675104)
那么我们如何查找各个资源的地址呢?参考《STM32G4系列微控制器参考手册.pdf》P82
内存映射
内存映射分左、右两侧。左侧是各个资源地址的大致分化,右侧是对左侧的细化。
将每个资源的地址搞清楚十分复杂,这里挑一些相对重要的、也是右侧向读者展示的资源地址进行说明。
FLASH
FLASH存储器的英文名称是"Flash Memory",又称闪存,是存储程序的地方。(打个比方:学习单片机时,需要将编写好的程序通过STC-ISP烧录软件下载到STC15单片机中,下载的程序就存储在芯片的FLASH里。)
Flash在内部结构中的位置
Flash在存储器空间的地址
从地址 0x0800 0000 到 0x0808 0000 ,( 8 0000 )16进制 = ( 524288 )10进制,Flash memory被分配到的空间足足有 524KB 大小,远大于它本身的 128KB 。
RAM
RAM英文名为Random Access Memory,随机存储器,用于存储数据。
RAM分为两大类:SRAM和DRAM。
- SRAM是静态RAM(S指的static),静态指的不需要刷新电路,数据不会丢失,SRAM速度非常快,是目前读写最快的存储设备了。
- DRAM是动态RAM(D指的dynamic),动态指的每隔一段时间就要刷新一次数据,才能保存数据,速度也比SRAM慢,不过它比任何的ROM都要快。
STM32G4内部结构中,SRAM又分为了三种:SRAM1、SRAM2、CCM SRAM。
SRAM起始地址为 0x2000 0000 。
外设
外设英文名为Peripherals。 STM32G4内部结构中,外设包括:APB1、APB2、AHB1、AHB2。其中的每一个都被划分了属于各自的地址空间。
外设起始地址为 0x4000 0000 。
![]() | ![]() |
总结:
- 外设起始地址为 0x4000 0000
- SRAM起始地址为 0x2000 0000
- Flash起始地址为 0x0800 0000
更加精确的地址,见数据手册P83-86。
例如,我想知道定时器TIM2-7的地址,定时器属于APB1,那么我需要到P86找到APB1即可。
可以看到,每个定时器都分配了 (400)16进制 = (1024)10进制 = 1KB 的空间。
点击右侧 Section 29.5.31: TIMx register map 可跳转到详细的定时器地址。
这样一来,我们就可以通过这种方式锁定每一个资源的详细地址。
以上是STM32G431的资源地址,下面是STM32F103内部资源地址。
参考《STM32F103数据手册.pdf》P22