博客
关于我
STM32F4系列——对于存储器地址的理解
阅读量:393 次
发布时间:2019-03-05

本文共 774 字,大约阅读时间需要 2 分钟。

在STM32系列中,我们知道利用结构体类型来封装寄存器,但是后面的那个地址偏低怎么理解呢?

/* GPIO 寄存器列表 */

5 typedef struct {

6 uint32_t MODER; /*GPIO 模式寄存器 地址偏移: 0x00 */
7 uint32_t OTYPER; /*GPIO 输出类型寄存器 地址偏移: 0x04 */
8 uint32_t OSPEEDR; /*GPIO 输出速度寄存器 地址偏移: 0x08 */
9 uint32_t PUPDR; /*GPIO 上拉/下拉寄存器 地址偏移: 0x0C */
10 uint32_t IDR; /*GPIO 输入数据寄存器 地址偏移: 0x10 */
11 uint32_t ODR; /*GPIO 输出数据寄存器 地址偏移: 0x14 */
12 uint16_t BSRRL; /*GPIO 置位/复位寄存器低 16 位部分 地址偏移: 0x18 */
13 uint16_t BSRRH; /*GPIO 置位/复位寄存器高 16 位部分 地址偏移: 0x1A */
14 uint32_t LCKR; /*GPIO 配置锁定寄存器 地址偏移: 0x1C */
15 uint32_t AFR[2]; /*GPIO 复用功能配置寄存器 地址偏移: 0x20-0x24 */

 

16 } GPIO_TypeDef;

 

STM32中的存储器地址是这样理解的:地址偏移的单位是Byte,而32位的寄存器刚好对应4字节,而这样理解的根源在于:可以从STM32的指导书中,有个存储器分类字样的表格,我们可以看到,

地址范围都是MB的即MByte的,512MB=536870911Byte,1FFF FFFF=536870911(十进制数),所以可见地址是针对与字节而言的!!

你可能感兴趣的文章
MySQL8,体验不一样的安装方式!
查看>>
MySQL: Host '127.0.0.1' is not allowed to connect to this MySQL server
查看>>
Mysql: 对换(替换)两条记录的同一个字段值
查看>>
mysql:Can‘t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock‘解决方法
查看>>
MYSQL:基础——3N范式的表结构设计
查看>>
MYSQL:基础——触发器
查看>>
Mysql:连接报错“closing inbound before receiving peer‘s close_notify”
查看>>
mysqlbinlog报错unknown variable ‘default-character-set=utf8mb4‘
查看>>
mysqldump 参数--lock-tables浅析
查看>>
mysqldump 导出中文乱码
查看>>
mysqldump 导出数据库中每张表的前n条
查看>>
mysqldump: Got error: 1044: Access denied for user ‘xx’@’xx’ to database ‘xx’ when using LOCK TABLES
查看>>
Mysqldump参数大全(参数来源于mysql5.5.19源码)
查看>>
mysqldump备份时忽略某些表
查看>>
mysqldump实现数据备份及灾难恢复
查看>>
mysqldump数据库备份无法进行操作只能查询 --single-transaction
查看>>
mysqldump的一些用法
查看>>
mysqli
查看>>
MySQLIntegrityConstraintViolationException异常处理
查看>>
mysqlreport分析工具详解
查看>>