第二章-寄存器

一、芯片组成

负责在 内核之外设计部件并生产整个芯片,这些内核之外的部件被称为核外外设或片上外设。如 GPIO、 USART(串口)、I2C、SPI 等都叫做片上外设

1692290301872

芯片内核和外设之间通过各种总线连接,其中主控总线有 8 条,被控总线有 7 条

二、存储器映射

给存储器分配地址的过程就称为存储器映射,具体见图 。给存储器再分配一个地址就叫存储器重映射

三、寄存器

以功能为名给这个

内存单元取一个别名,这个别名就是我们经常说的寄存器,这个给已经分配好地址的有特定功能的内存单元取别名的过程就叫寄存器映射

寄存器的说明

1692290420600

① 名称

(GPIOx_BSRR)(x=A…I)”是该寄存器名为“GPIOx_BSRR”其中的“x”可以为 A-I,也就是说这个寄存器说明适用于 GPIOA、GPIOB 至 GPIOI,这些 GPIO 端口都有这样的一个寄存器

② 偏移地址

偏移地址是指本寄存器相对于这个外设的基地址的偏移。查到 GPIOA 外设的基地址为 0x4002 0000 ,就可以算出 GPIOA 的这个 GPIOA_BSRR 寄存器的地址为:0x4002 0000+0x18

③ 寄存器位表

为读写权限,其中 w 表示只写,r 表示只读,rw 表示可读写

④ 位功能说明

本寄存器中有

两种寄存器位,分别为 BRy 及 BSy,其中的 y 数值可以是 0-15,这里的 0-15 表示端口的引脚号,如 BR0、BS0 用于控制 GPIOx 的第 0 个引脚,若 x 表示 GPIOA,那就是控制 GPIOA 的第 0 引脚,而 BR1、BS1 就是控制 GPIOA 第 1 个引脚。

这里的“复位”是将该位设置为 0 的意思,而“置位”表示将该位设置为 1;

四、GPIO 输出初始化顺序

1、确定 GPIO 是输入、通用输出、复用功能还是模拟输入(MODER)

2、如果是输出还要确定推挽输出还是开漏输出(OTYPER)

3、配置输出的速度(OSPEEDR)

4、输出的时候内部是上/下拉电阻要不要开启(PUPDR)

5、具体输出的内容(BSSR 和数据输出 ODR)