正常
第 1 章 · 5 读手册的能力
1.5.0 引子:光讲分工太飘,来个真问题
前面四节把四本手册的分工讲了一遍,但真遇到工程问题,你往往不是只翻一本——而是几本配合着翻。这一节用一个自编的小需求,演示这套「联用」怎么发生。
1.5.1 需求:一个按键,点一盏灯
假设你要做:PA0 接按键,按下时点亮 PA1 上的 LED。 就这么简单一句需求,动手前你要回答一连串问题,而每个问题的答案躺在不同的手册里:
- PA0、PA1 是哪两个脚?它们有没有特殊用途被占着? 比如 PA13 / PA14 是调试口(SWD),你要是不小心用了,调试器就废了。→ 翻 datasheet 的 Table 5(引脚定义,p28)。
- PA0 做按键输入,该配成上拉还是下拉? 这取决于你的按键电路(另一端接地还是接电源)。GPIO 有哪几种输入模式、内部上下拉怎么回事 → 翻 RM0008 第 9 章(GPIO 功能描述,p159)。
- 我想让按键用外部中断响应,会不会撞上某个已知 bug? → 翻 ES096,搜 EXTI / GPIO 相关条目。
- 中断到底怎么进、优先级怎么设、进了中断 CPU 要保存哪些寄存器? 这是内核的行为 → 翻 PM0056 第 2 章(异常模型)。
你看,一个「按键点灯」的小需求,四本手册全用上了。这就是真实开发的节奏。
1.5.2 自编小练习:该翻哪本?
判断下面几个问题该翻哪本手册的哪一部分(答案自己在脑中对一下):
- 「PB6 能不能复用成 I²C1_SCL?」
- 「这颗芯片待机(Standby)模式下功耗大约多少?」
- 「我配了个 100% 占空比的 PWM,输出怎么不对?」
- 「程序跑进了 HardFault,怎么定位是哪条指令惹的?」
提示:第 3 题是个「玄学」——回忆上一节,errata 里就有一条专门讲这个(2.6.7)。第 4 题是内核行为,去找 fault handling。第 1、2 题分别归引脚复用(datasheet / RM 的 AFIO)和供电电流(datasheet 电气特性)。
1.5.3 要点(也是全章收尾)
- 四本手册不是孤岛,一个工程问题常常要联用;关键是先判断「这是个什么类型的问题」,再决定翻谁。
- 判断口诀(第 1.1 节那张表的延伸):物理量找 datasheet,寄存器与外设原理找 RM0008,内核行为找 PM0056,玄学问题找 errata。
- 学会「查」,你才真正摆脱了「离开教程就不会」的状态——这是整本笔记想教你的第一件事,也是最重要的一件。
参考说明:本文需求与练习为自编;页码指路参考 ST 官方 DS5319 / RM0008 / ES096 / PM0056,仅作理解线索;不涉及对原文档的复制或翻译。