第 1 章 · 3 读手册的能力
1.3.0 引子:1136 页,你打算从头读?
RM0008 有 1136 页。你要是打算从第 1 页读到第 1136 页,恭喜,你退休前能读完一遍。
但它不是教材,是字典。没人从第一页读字典,都是遇到不会的字再去查。RM0008 的正确打开方式是:带着一个具体问题,直奔对应的章节。
1.3.1 每个外设章的结构都一样
RM0008 的好处是,每个外设(GPIO、定时器、ADC……)的章节结构高度统一,通常是三段:
- introduction / main features:这个外设能干嘛(扫一眼即可);
- functional description:工作原理(想知道「为什么」就看这);
- registers:寄存器位定义(写代码时真正要查的)。
所以你查寄存器,直接翻到该外设章的 registers 节,不用在前面的原理描述里打转。
1.3.2 举两个真实的例子
例一:我想配一个 GPIO 为输出。 翻到 GPIO 章(第 9 章,p157),registers 节里找 GPIOx_CRL(端口配置寄存器低,9.2.1 节 p171)——它每位怎么设模式、速度,位域表写得清清楚楚。
例二:我想不读-改-写、直接原子地拉高一个脚。 同章的 GPIOx_BSRR(置位 / 复位寄存器,9.2.5 节 p173)就是干这个的——写 1 拉高、写 0 不变,不怕被打断。
这里的
GPIOx里那个x不是笔误——它表示 GPIOA 到 GPIOG 任一端口,寄存器布局都一样,你把 x 换成具体端口名即可。RM0008 里到处都是这种x/y占位符。
1.3.3 时钟这件事,归 RCC 管
外设不是一上电就能用,得先开时钟(F103 的外设默认时钟是关的,为了省电)。时钟归 RCC(复位和时钟控制)管,F103 中密度型号的 RCC 在第 7 章,核心寄存器 RCC_CR(7.3.1 节 p99)控制各时钟的使能和就绪标志。
踩坑提醒:RM0008 覆盖 F101 / F102 / F103 / F105 / F107 全家。有些章节是别的型号专属——比如第 8 章的 RCC 是给 connectivity line(F105 / F107)用的,F103 中密度要用第 7 章。查之前先确认这一章属于你的型号,不然照着配半天没反应,因为你看错了型号的章。
1.3.4 要点
- RM0008 当字典查,别从头读;每个外设章结构统一(intro → 原理 → 寄存器)。
- 配寄存器直接翻到该外设章的 registers 节(如 GPIO 的 9.2 节 p171),别在原理描述里耗。
GPIOx的 x 是端口占位符;F103 中密度的时钟看第 7 章 RCC(别看第 8 章)。
参考说明:参考 ST 官方 reference manual RM0008 Rev 21(2021-02),仅作理解线索与页码指路;本文为结合自己理解重新整理的学习笔记,不涉及对原文档的复制或翻译。