一、存储器映射、重映射
- 存储器本身不存在地址,人为给存储器分配地址的过程称为存储器映射。
- 给已经分配了地址的存储器再分配一个地址,即为重映射。
二、寄存器、寄存器映射
- 寄存器指有特定功能的内存单元。
- 给已经分配好地址的有特定功能的内存单元取别名的过程称为寄存器映射。
- 举例:
#define GPIOH_ODR (unsigned int *)(0x40021C14)
*GPIOH_ODR = 0xFFFF
为了使用方便,可以将指针操作*也定义到寄存器别名中:
#define GPIOH_ODR *(unsigned int *)(0x40021C14)
GPIOH_ODR = 0xFFFF
三、操作寄存器
1. 确定寄存器地址
-
其中地址0x4000 0000称为外设基地址,也是APB1总线的基地址。
-
总线基地址
-
GPIO外设基地址
-
GPIOH寄存器基地址
-
在STM32中,通过基地址+偏移地址来确定具体的寄存器地址
2. 设置寄存器电平
例:控制GPIOH10输出高/低电平