博客
关于我
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中实现rownum,对结果进行排序
查看>>
mysql中对于数据库的基本操作
查看>>
Mysql中常用函数的使用示例
查看>>
MySql中怎样使用case-when实现判断查询结果返回
查看>>
Mysql中怎样使用update更新某列的数据减去指定值
查看>>
Mysql中怎样设置指定ip远程访问连接
查看>>
mysql中数据表的基本操作很难嘛,由这个实验来带你从头走一遍
查看>>
Mysql中文乱码问题完美解决方案
查看>>
mysql中的 +号 和 CONCAT(str1,str2,...)
查看>>
Mysql中的 IFNULL 函数的详解
查看>>
mysql中的collate关键字是什么意思?
查看>>
MySql中的concat()相关函数
查看>>
mysql中的concat函数,concat_ws函数,concat_group函数之间的区别
查看>>
MySQL中的count函数
查看>>
MySQL中的DB、DBMS、SQL
查看>>
MySQL中的DECIMAL类型:MYSQL_TYPE_DECIMAL与MYSQL_TYPE_NEWDECIMAL详解
查看>>
MySQL中的GROUP_CONCAT()函数详解与实战应用
查看>>
MySQL中的IO问题分析与优化
查看>>
MySQL中的ON DUPLICATE KEY UPDATE详解与应用
查看>>