STM32/什么是寄存器、寄存器映射和基地址

目录

1、寄存器

2、寄存器映射

3、基地址

3.1、总线基地址

3.2、外设基地址

4、地址偏移(偏移地址)

1、寄存器

寄存器:计算机和微控制器(如STM32、ESP32等)中最基础、最快速的(快于内存)存储单元,直接集成在CPU或外设内部,用于临时存放数据、地址或控制信息。根据每个单元功能(如串口UART、引脚GPIO)的不同,以功能为名给这个内存单元取的一个别名,这个别名就叫寄存器。

2、寄存器映射

寄存器映射:给已经分配好地址的、有特定功能的内存单元取别名的过程就叫寄存器映射。

3、基地址

3.1、总线基地址

‌总线基地址‌:是指总线在存储器映射中的起始地址。在STM32系统中,总线基地址包括AHB、APB1和APB2的基地址。

‌AHB总线的基地址‌是0x4001 8000‌

‌APB1总线的基地址‌是0x4000 0000

‌APB2总线的基地址‌是0x4001 0000

这些基地址用于确定不同总线在存储器映射中的起始位置,从而实现对不同外设的访问。

3.2、外设基地址

外设基地址:总线上挂载很多外设(如GPIOx 其中x可以为A、B、C、D、E、F、G),而这些外设也有相对应的基地址,我们称该基地址为外设基地址。

外设基地址 = 对应总线基地址 + 外设偏移地址

4、地址偏移(偏移地址)

地址偏移:指给出一个地址(通常是基地址)到目标地址的差值。

例如外设GPIOA挂载在APB2总线下,APB2总线基地址为0x4001 0000,而GPIOA端口的基地址是0x4001 0800;此时我们不难发现0x4001 0800是在0x4001 0000的基础上加了一个0x0000 0800;而这个0x0000 0800就是GPIOA相对于APB2总线的一个偏移地址。

依次类推:GPIOB端口的基地址是0x4001 0C00,相对于APB2总线的偏移地址是0x0000 0C00‌。

更多寄存器起始地址可以参考下表

注:以上内容仅个人理解,不具备唯一性和绝对正确性,仅供参考。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值