博客
关于我
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(十进制数),所以可见地址是针对与字节而言的!!

你可能感兴趣的文章
Mysql索引总结
查看>>
mysql经常使用命令
查看>>
Mysql缓存调优的基本知识(附Demo)
查看>>
mysql自动化同步校验_Shell: 分享MySQL数据同步+主从复制自动化脚本_20190313_七侠镇莫尛貝...
查看>>
mysql自增id超大问题查询
查看>>
MySQL获取分组后的TOP 1和TOP N记录
查看>>
MySQL视图
查看>>
MySQL设置白名单限制
查看>>
MySQL设置远程连接
查看>>
Mysql账号权限查询(grants)
查看>>
MySQL迁移到达梦:如何轻松、高质量完成迁移任务
查看>>
mysql还有哪些自带的函数呢?别到处找了,看这个就够了。
查看>>
mysql进阶 with-as 性能调优
查看>>
mysql进阶-查询优化-慢查询日志
查看>>
Mysql连接时报时区错误
查看>>
mysql逗号分隔的字符串如何搜索
查看>>
MYSQL遇到Deadlock found when trying to get lock,解决方案
查看>>
mysql部署错误
查看>>
MySQL配置信息解读(my.cnf)
查看>>
Mysql配置表名忽略大小写(SpringBoot连接表时提示不存在,实际是存在的)
查看>>