这一章在干嘛?

介绍本书的学习顺序、参考资料、代码规范与初学者建议,相当于「读前必读」。

1.1 本书学习顺序

1.2 本书参考资料

1.3 本书编写规范

1.4 本书代码规范

1.5 例程资源说明

1.6 学习资料查找

1.7 给初学者的建议

1.1 本书学习顺序

编写思路:循序渐进,从基础到入门,从简单到复杂。全 43 章按三篇组织:

  • 基础篇(第 1~12 章):学习方法、STM32 简介、MDK/CubeMX 工程搭建、HAL 库结构、时钟系统、SYSTEM 公共文件。
  • 入门篇(第 13~34 章):GPIO、按键、外部中断、串口、看门狗、LCD、DMA、I2C、SPI、485/232、CAN、触摸屏、传感器。
  • 提高篇(第 35~43 章):内存管理、FPU/DSP 数学加速、IAP、USB、汉字显示。

对初学者: 按顺序学习,不要跳跃。本书知识一环扣一环,跳过可能后面越来越吃力。对已学过 STM32 的同学:可跳跃,遇到不懂再回头补。

建议先通读《ATK-DMF407 硬件参考手册.pdf》了解开发板硬件资源,再回到本书按基础→入门→提高顺序攻克。

1.2 本书参考资料

四份核心资料:

资料作用使用时机
《STM32F4xx 参考手册_V4 中文版》ST 官方通用资料,介绍内部资源、寄存器查寄存器、看功能说明
《STM32F4xx 参考手册_V6 英文版》最新版本,部分新外设只有英文版有中文版查不到时
《STM32F407IGT6.pdf》本芯片英文数据手册(不是参考手册)查电气参数、引脚定义、封装
《Cortex-M3 与 M4 权威指南》ARM 内核架构级资料理解 NVIC、SysTick、内核异常

硬件参考手册与开发板原理图是「硬件字典」,遇到不熟悉的引脚/外设第一时间翻它们。

1.3 本书编写规范

全书例程按四步走组织(入门篇、提高篇均如此):

  1. 外设功能介绍——框图 + 关键寄存器,让你了解这块外设。
  2. 硬件设计——实验功能、所用资源、原理图接线。
  3. 程序设计——驱动介绍 + 配置步骤 + 流程图 + 关键代码 + main 讲解。
  4. 下载验证——把程序烧进去看现象,形成闭环。

1.4 本书代码规范

关键代码风格(完整版见光盘 A 盘《嵌入式单片机 C 代码规范与风格.pdf》):

规范点示例
函数/变量小写uint16_t g_adc_value;
注释风格/单片机初始化/
TAB=4 空格编辑器里开启空格替换 Tab
全局变量 g_ 前缀g_usart_rx_sta
全局指针 p_ 前缀p_rx_buf
if/for 单独成行if (cond)
{ ... }

一致的风格让你和别人 6 个月后还能看懂自己的代码,从第一天就养成习惯。

1.5 例程资源说明

DMF407 提供 31 个标准例程,全部 HAL 库版本。每个例程独立完整、注释详尽,按学习顺序编号:跑马灯、蜂鸣器、按键、外部中断、串口、独立看门狗、窗口看门狗、TFT-LCD、USMART、RTC、硬件随机数、低功耗、DMA、IIC、SPI、485、232、CAN、触摸屏、DS18B20、DHT11、FLASH 模拟 EEPROM、内存管理、FPU、DSP、IAP、USB 读卡器、USB 虚拟串口、USB 鼠标键盘、USB U 盘、汉字显示。

学习方法: 先看本章的「文字讲解」,再打开对应例程对照代码,最后下载到开发板验证。

原书图 1.6.1:ST 官方资料与论坛入口原书图 1.6.1:ST 官方资料与论坛入口

1.6 学习资料查找

遇到问题怎么查?三步走:

  1. 看手册:寄存器描述、功能框图、时序图往往把问题讲清楚了。
  2. 搜例程:官方/原子哥/野火/正点例程库搜索关键词。
  3. 搜社区:ST 官方社区、CSDN、知乎、B 站,关注错误信息关键字。

原书图 1.6.2:正点原子论坛与资料下载入口原书图 1.6.2:正点原子论坛与资料下载入口

1.7 给初学者的建议

最后十条血泪建议:

  1. 多敲代码——光看不动手永远学不会。
  2. 先跑通再优化——把官方例程跑起来再尝试改。
  3. 看懂报错——编译警告不要忽略,它常指出致命 bug。
  4. 善用仿真——断点 + Watch 窗口比 printf 更高效。
  5. 看数据手册原版——中文翻译常有歧义。
  6. 记笔记——好记性不如烂笔头。
  7. 画图理解——时序图、状态机自己画一遍。
  8. 看原理图——硬件和软件永远不分家。
  9. 提问前先搜——能搜到的不必问。
  10. 坚持——前 10 章是最痛苦的,过了就顺了。