直接说结论:如果你现在距离嵌入式系统考试只剩一周、甚至只剩三天,手边有一套STM32开发板但还没怎么碰过,或者你连开发板都没有、只想在电脑上把考试重点啃完,那么这种“5小时速成 + 环境搭建工具包”的复习资源,正是你目前最该拿起来的东西。
我在大学阶段帮人补过不少次嵌入式系统概论的课,也在复试辅导里带过几个跨考的学生。我见过太多人挂在同一个问题上:明明考题不难,但因为他前期把时间全耗在装软件、建工程、配编译器上,结果连GPIO和定时器的基本概念都没捋清,考试自然考不出好成绩。这其实不是能力问题,是备考策略出了问题。嵌入式系统这门课,内容多而杂,从ARM内核架构到外设寄存器,从C语言裸机编程到RTOS基础概念,如果按部就班地啃教材,一个月都不一定够;但如果目标明确、路径正确,5小时抓住主线完全可行。
下面我就结合这套速成课资源,拆一拆“5小时掌握嵌入式系统全部内容”是怎么做到的,以及你在复习时最容易踩的坑在哪儿。
1. 这门速成课的资源逻辑:先应试、后深入,和传统路线完全不同
先说结论:这不是一门教你“精通STM32”的课,而是一门口径精准的“考试导向型”复习课。它要解决的是一个很现实的问题:你如何在最短时间内,把嵌入式系统这门课里最常考、最容易拿分的知识点系统地过一遍,并且能把基础实验题的分稳稳拿到手。
我对比过市面上很多嵌入式系统课程,发现它们大多是按“教材章节顺序”来讲的:先讲计算机组成原理里的存储层次,再讲ARM处理器架构,然后讲汇编指令集,接着才讲到STM32的外设。这套顺序对打基础的人没问题,但对临近考试的考生非常不友好——因为你永远在铺垫,永远接触不到“能做题”的部分。
这套速成课的设计逻辑完全反过来。它的核心思路是:
- 从考题倒推知识点。先把嵌入式系统最常见的题型摸清楚,比如选择题里爱考的“ARM内核系列属于哪类架构”“Cortex-M3内核寄存器R0-R12的作用”,这些几乎每套卷子都有,属于送分题。
- 从STM32倒推计算机原理。对很多学校来说,嵌入式系统课程以STM32为实践载体,考试题目往往围绕STM32F103芯片展开,比如“GPIO的输入输出模式有哪几种”“定时器如何产生PWM信号”。只要把STM32外设的共性逻辑搞懂,底层原理自然就贯通了。
- 跳过不考的、弱化少考的。比如ARM指令集的每条汇编指令细节,很多学校只考一两道选择题,速成课就集中讲“考试爱考的那几条指令”;再比如存储器映射的详细地址分配,速成课会帮你画成一张表格总结,而不是让你真去背几百页参考手册。
这种先应试、后深入的逻辑,对哪几类人最有用?我梳理了一下:
| 目标人群 | 推荐的复习方式 |
|---|---|
| 期末考及格线徘徊的人 | 先看串讲视频拉通概念,再用环境搭建工具包把Keil的工程跑起来,重点掌握GPIO、串口、定时器三个实验 |
| 想冲90+的人 | 在这门课基础上,额外刷课后习题和往年试卷,尤其注意补考/缓考常见的大题类型(比如状态机、中断嵌套、PWM占空比计算) |
| 专升本/考研复试准备者 | 不仅要用它过知识点,还要把实验代码的注释写明白,因为复试面试官喜欢追问“你这句代码为什么这么写” |
所以,你在看这套速成课之前要想清楚一件事:你到底是来学本事的,还是来过考试的?如果时间允许,我当然建议你两件事都做;但如果你这周就要上考场,先用手里的资源过考试,是完全正确的选择,不必觉得“速成”低人一等。
2. 环境搭建工具包:为什么它是速成复习的最大拦路虎,也是最大加速器
接着必须说说配套的环境搭建工具包。凡是自己装过STM32开发环境的人,都懂得那种绝望感:明明照着教程一步步来,结果编译一跑就报错,一分钟的Demo代码卡了两个小时还没点亮LED。在我带过的人里,至少有三分之一的人,备考的两三天时间里有将近一天耗在环境配置上,这性价比太低了。
这套资源里附的环境搭建工具包,主要解决了以下几个高频问题:
- Keil MDK的安装与注册。注意,很多人装完Keil忘记安装对应芯片型号的Device Pack,导致编译时找不到“STM32F103C8”这个芯片。工具包会把这类细节给你标出来,照着勾选就行。
- 标准外设库和HAL库的选择。很多学校的实验课还在用标准库写代码,但网上新教程大多是HAL库。工具包基本会同时提供两份模板工程,省去你自己去官网捣鼓下载的麻烦。
- ST-Link驱动的安装与烧录配置。你要是用开发板自带的ST-Link烧录程序,驱动的坑特别多。我见过有人在设备管理器里看到黄叹号“STM32 Virtual Com Port”,怎么都连不上,结果只是少装了一个驱动,或者USB线只能用充电的、不能用传数据的。
- 工程模板的预编译校验。工具包里的模板工程不是空壳子,而是已经在作者的电脑上编译通过、烧录验证过的版本。你打开它直接改代码就行,不需要自己去配置Include Path、宏定义、下载算法这些容易出错的选项。
这里要特别提醒一句:如果你连开发板都没有,全靠考试脑补,那环境搭建工具包里的仿真工程也能救急。Keil的Simulator模式可以在没有硬件的情况下模拟运行STM32程序,虽然外设模拟和真实芯片有差异,但跑通GPIO翻转、串口打印这种基础代码足够了。我当年复习的时候,就是用仿真模式把串口printf的代码调通的,考试时看代码流程图完全不慌。
还有一个小技巧,绝大部分速成课不会专门教你的:把环境搭建好的那一刻,立刻写一个“最小工程”保存下来,以后所有实验代码都在这个工程上改。很多人的习惯是每做一个新实验就从零新建工程,每次都要重新选芯片、配Debug、设晶振频率,纯属浪费时间。我自己工作这几年,一直保持着这个习惯:留一个干净的“空白模板工程”,带GPIO初始化、串口初始化、延时函数和主循环框架,新项目直接复制改业务逻辑,半小时就能把活儿干完。对你考场复习也是一样的逻辑,一个趁手的模板工程,能让你的上机练习时间减少一半以上。
3. 5小时过一遍“嵌入式系统”的复习主线:知识点骨架、考点分布、实操重点
把环境搭好之后,接下来就是最核心的问题:这5小时到底怎么分配,才能让复习效果最大化?
我根据历年期末卷、补考卷和复试常问问题,把这5小时推荐这么拆分,大家可以直接照着执行:
| 时间段 | 复习内容 | 对应考试重点 |
|---|---|---|
| 前1小时 | ARM体系结构与Cortex-M3/M4内核基础:架构特点、寄存器组、工作模式、存储器映射 | 选择题、填空题常客;“哈佛结构vs冯诺依曼结构”必考 |
| 第2小时 | STM32最小系统与时钟树:启动模式、复位电路、时钟源选择(HSI、HSE、PLL) | 简答题“简述STM32启动过程”;时钟配置代码分析题 |
| 第3小时 | 三大外设:GPIO、定时器、串口(USART)的原理与编程 | 读代码写结果题、程序填空题、改错题 |
| 第4小时 | 中断系统与NVIC:中断优先级分组、中断服务函数写法、优先级抢占 | 综合题常考,复试面试官特别喜欢追问中断嵌套 |
| 最后1小时 | 综合实战:一个“按键控制LED/串口打印”的小项目,把前面所有模块串起来 | 实验题或课程设计答辩,也是补考/缓考最常见的大题 |
下面我按模块把重难点过一遍,每个模块我都会点出“考试最爱的考点”和“最容易丢分的地方”,大家对着看就行。
3.1 ARM内核架构:记住这些概念就能拿基础分
嵌入式系统考试里,ARM体系结构这部分几乎是必考送分题。你需要把这几组概念理清:
- RISC vs CISC:ARM属于RISC(精简指令集计算机),特点是指令定长、寻址方式简单、大部分指令单周期完成。很多学校爱跟x86的CISC做对比出选择题。
- 冯诺依曼结构 vs 哈佛结构:经典ARM7是冯诺依曼结构(指令和数据共用一条总线),Cortex-M系列采用改进型哈佛结构(指令总线和数据总线分离)。STM32的Flash和SRAM分开就是哈佛结构的体现。这个点几乎是每张卷子都有的题目。
- Cortex-M3/M4的寄存器组:R0-R12通用寄存器,R13堆栈指针(MSP和PSP),R14链接寄存器,R15程序计数器。考试喜欢问“哪个寄存器保存函数返回地址”——答案是LR(R14)。
- 工作模式:线程模式和处理模式,还有特权级和用户级。很多题喜欢考“上电复位后CPU处于什么状态”。
我自己的经验是,这一小时千万别去抠每条汇编指令,考试顶多考个MOV、LDR、STR、PUSH、POP的选择题,你哪怕不理解底层流水线,只要记住这几条指令的作用就够了。从整个嵌入式课程的知识权重来看,这部分属于“半张卷子的地基”,花一小时理解是值得的。
3.2 STM32最小系统与时钟树:简答题的得分点
时钟树是很多人的痛点,因为STM32的内部时钟关系确实绕。你只要把一条主线拎清楚就行:
外部高速晶振(HSE)→ 经过PLL锁相环倍频 → 得到系统时钟SYSCLK → 通过AHB预分频器给各外设提供时钟,通过APB1/APB2预分频器给定时器、串口等外设供时钟。
STM32F103系列默认最高主频是72MHz,这个数字几乎是考试必背的。有的学校会出小计算题:已知外部晶振8MHz,要得到72MHz系统时钟,PLL倍频系数应该设多少?答案就是9倍(8×9=72)。
这个模块的另一个高频考点是启动模式。STM32的BOOT0和BOOT1引脚决定芯片从哪启动:
| BOOT1 | BOOT0 | 启动模式 | 说明 |
|---|---|---|---|
| x | 0 | 主Flash启动 | 正常用户代码运行模式 |
| 0 | 1 | 系统存储器启动 | 出厂Bootloader,用于串口下载 |
| 1 | 1 | 内置SRAM启动 | 调试用,掉电程序消失 |
考试如果在选择题里给你一组引脚电平,问你芯片从哪里启动,这张表直接套就行。同时还要理解“存储器重映射”的意思——启动就是把对应存储器的地址映射到0x00000000处开始取指,STM32上电后是从0x08000000开始执行Flash中的代码的(映射到0x00000000),理解这一点,面试时能加不少分。
3.3 STM32三大外设:上机操作和读代码题的分数大户
3.3.1 GPIO(通用输入输出)
GPIO是考试必考模块,一点都不夸张。你需要掌握这几点:
- GPIO的工作模式:输入浮空、输入上拉、输入下拉、模拟输入;开漏输出、推挽输出、复用开漏、复用推挽。考试常考“控制LED应该用哪种模式”——绝大多数情况是推挽输出;“读取按键电平用哪种模式”——输入上拉或输入下拉。
- GPIO相关寄存器:MODER、OTYPER、OSPEEDR、PUPDR、IDR、ODR、BSRR。很多学校会考“要让某个引脚输出高电平,应该操作哪个寄存器”。
- 置位和复位的区别:BSRR可以原子操作把某位置1或清0,ODR直接读写但可能引发竞争问题。考试爱考“用BSRR怎么把PA1置1”——答案是把BSRR的bit1写1。
上机操作题最常见的就是“用GPIO控制三个LED循环点亮”或者“按键控制LED开关”。这类题读懂代码比背代码更重要。你只要看到GPIO_InitTypeDef结构体,明白Mode、Pin、Speed三个成员各自的作用,再看到GPIO_WriteBit这类函数,就能顺出整段代码的逻辑。
3.3.2 定时器Timer
定时器这个模块,考试题型非常丰富,从概念题到计算题都有。最常见的几类:
- 定时时间的计算。STM32定时器是16位的,预分频器把72MHz时钟分频,计数器再计数到ARR值。比如你要定时1秒,就设置PSC=7199、ARR=9999,这样72MHz/(7199+1)=10kHz,每计数一次0.1ms,计数10000次正好1秒。这个公式(定时时间=(PSC+1)×(ARR+1)/72MHz)必须会背、会算。
- PWM脉宽调制。考试爱考:PWM的频率怎么算、占空比怎么调、在哪个寄存器里改。修改CCR(捕获/比较寄存器)的值就能改变占空比,这个知识点在课程设计答辩里几乎是必问的。
- 输入捕获测频率。这个知识点很多速成课会一笔带过,但复试问到的概率不小。原理是:用定时器的一个通道捕获外部信号的上升沿,记录两次捕获之间的计数值差值,再结合定时器的时钟频率算出外部信号频率。比如说你测到两次上升沿之间计数了5000次,定时器时钟是1MHz,那信号频率就是1MHz/5000=200Hz。
- 定时器中断和延时函数的卡死问题。如果你在网上搜过“STM32延时函数delay卡死”,大概率是看到有人把定时器的更新中断用成了死循环等标志位,结果标志位永远等不到。这个属于实操坑,但考试里换个面貌出现:给你一段用while轮询标志位的延时代码,问你如果中断没开启会怎么样——答案就是死等。
3.3.3 串口USART
串口在考试里的存在感主要体现在:代码结果分析题和数据收发设计题。
- USART初始化结构体:USART_InitTypeDef里的BaudRate、WordLength、StopBits、Parity,这四项是考查重点。
- 波特率的含义:每秒传输的比特数。9600、115200是考试里最常见的数字,要会算“传输一个字节(含起始位、停止位)需要多长时间”。115200波特率,传1个字节(8位数据+1起始位+1停止位=10bit)大约86.8微秒。
- 接收中断和发送完成中断:考试可能会给你一段中断服务函数的代码,问“这个程序在什么情况下会进入中断,执行了什么操作”。
上机题的话,串口最常见的考法是“接收上位机发送的一个字符,控制LED闪烁”或者“通过串口打印传感器数据”。所以串口初始化、重定向printf、中断处理这几段代码你一定要亲手敲一遍,理解了就忘不掉。
3.4 中断系统与NVIC:复试面试的“必杀问题”区域
中断这块,我是建议所有复习的人多花点时间的。不仅期末考爱出,考研复试和专升本面试也特别爱问,而且一问就是连环追问:
- 中断和异常的区别是什么。异常是内部事件(如除零、硬件错误),中断是外部事件(如定时器更新、串口接收),两者都通过NVIC统一管理。
- STM32的中断优先级分组。Cortex-M3内核支持最多256个优先级,STM32F103精简为16个(用4位表达),但通过NVIC的优先级分组寄存器,可以把这4位拆成“抢占优先级”和“子优先级”两部分。考试经常给一个优先级分组配置,然后问:两个中断同时触发,谁先响应?
- 中断服务函数和普通函数的区别。中断服务函数不能有返回值、不能带参数,函数名要跟启动文件里定义的名字一致(如TIM2_IRQHandler)。每所学校的期末考试里,几乎都有一道“找到下面中断函数代码中的错误”的题,最经典的错误就是“中断服务函数里写了打印耗时操作”或者“中断里用了delay延时”。
- 中断标志位清除。很多外设触发中断后,必须由软件清除中断标志位,否则会一直进中断。考试喜欢在代码里故意漏掉清除那一步,让你判断程序行为——基本都会死循环,或者可以理解为反复进中断。
这块的学习方法,我建议不是死背概念,而是把GPIO+定时器+串口三个中断在板子上各调通一次,然后再回来看理论,你会发现那些寄存器和优先级瞬间全部“串”起来了。
3.5 综合实战项目:按键控制LED加串口打印
5小时的最后一小时,我强烈推荐你把这个30-50行的综合小项目从头到尾“过”一遍:按一下按键,LED状态翻转一次,同时通过串口打印一段“Key Pressed”的调试信息。
这个项目麻雀虽小五脏俱全,它涵盖了GPIO输入、GPIO输出、外部中断(或者轮询)、串口初始化、printf重定向、主循环逻辑。你把这段代码真正敲出来并调通,基本就等于把前面4小时的理论知识、环境工具全部串成了线。哪怕考试时不出原题,遇到“阅读下面的程序,写出运行结果”或者“程序改错”这一类题,你都不会慌,因为你脑子里已经有了一个“标准范例”。
4. 高频热搜问题串讲:error no target、Keil5兼容C51、VSCode开发、HAL库还是标准库
速成复习过程中,很多人会卡在环境类问题上,正好我搜集了很多相关热词,这里挑几个典型问题一次性讲清楚。
4.1 “Error: No STM32 Target Found!”是什么鬼
这个报错几乎每个用ST-Link烧录的人都会遇到,翻译过来就是“找不到STM32芯片目标”。最常见的两个原因:
- 调试器没连上。检查ST-Link的USB线是不是“只能充电不能传数据”的线,换一根数据线试试;检查开发板的供电开关有没有打开。
- Debug配置不对。在Keil的“Options for Target → Debug”里选的是“ST-Link Debugger”,然后还要去Settings里确认能看到芯片ID,连接速率Target有时要降到1MHz以下才能识别。
还有一个容易被忽略的场景:如果你嵌入了调试鉴权(Debug Authentication)功能,也就是给芯片开了读保护,ST-Link默认是连不上目标芯片的,必须先用ST-Link Utility或STM32CubeProgrammer解除读写保护,才能正常烧录调试。考试可能不会考这么深,但实操时这是个大坑,我见过有人折腾了一晚上,最后发现是读保护没关。
4.2 Keil5兼容C51和STM32的安装,究竟能不能共存
可以,但要分开装东西。Keil MDK(用于ARM芯片)和Keil C51(用于51单片机)可以安装在同一台电脑上,两个套件会自动注册到同一个uVision集成环境中,打开Keil时只要在工程选项里选择对应的Device就行。
关键是:MDK和C51是两个独立的安装包,装完后还要分别注册许可证。装好之后,新建工程时芯片列表里能同时看到ARM系列的STM32和8051系列的AT89C52,就算成功了。这个过程在工作中很常用(因为很多老项目还在维护51单片机),所以你要是能顺手搞定,上课时还能帮同学排个雷。
4.3 VSCode开发STM32,有必要吗
有的学校允许学生用VSCode + EIDE插件来开发STM32,也有不少自学者喜欢用VSCode配合arm-none-eabi-gcc编译、OpenOCD下载。和Keil相比,VSCode主要赢在代码提示、界面颜值和Git集成上,但配置链路的复杂度更高,对新手来说坑更多。
我的建议很实际:期末复习阶段,用学校指定的环境,或者用速成课带的工具包环境,别自己折腾VSCode。等你有大把时间了,再换到VSCode + EIDE,我觉得长期来看更舒服,因为你可以把代码编辑、编译、烧录、命令行全部串起来,还能写一些自动化脚本。这种事放到考前折腾,纯属给自己找事。
4.4 标准库还是HAL库,考试用哪个
这个问题分情况讨论:
- 学校的实验课如果还在用标准库,那你考试最好按标准库来复习,因为老师出题会参考实验代码风格,代码填空题挖的空,可能就是标准库函数名。
- 如果学校用的是STM32CubeMX + HAL库,那期末复习时就别死磕标准库了,重点掌握CubeMX的图形化配置思路,理解HAL_GPIO_WritePin、HAL_UART_Transmit这些API的参数含义。
- 复试、专升本面试,面试官更关心的是你“懂不懂原理”,用什么库是次要的。你只要能说得清楚“读寄存器也能实现,用库函数是封装了寄存器操作”,面试官就知道你基础是扎实的。
说到底,标准库更看得见寄存器,HAL库更高效写代码。两条路线都行,挑你学校教学主线的那条去复习,其他的先不管。
4.5 STM32F103、F407、L031,到底有何不同
考试卷子上可能出现“STM32F103C8T6”和“STM32F407ZGT6”这类具体型号。你需要知道的是:
- STM32F103:Cortex-M3内核,主频72MHz,是最经典的教学芯片,资源最多的教程几乎都围绕它展开。
- STM32F407:Cortex-M4内核,主频168MHz,带了FPU(浮点运算单元)、DSP指令,还多了DCMI摄像头接口、以太网MAC。如果你考的学校毕设做的是机器视觉或语音处理,大概率用的就是F407。
- STM32L031:Cortex-M0+内核,定位低功耗,适合电池供电的便携设备。它用的是外部晶振时,要注意LSE低速外部晶振的配置,很多人连不上就是低速时钟没跑起来。
考试如果考你型号参数差异,大概率是选择题:“以下哪个芯片属于Cortex-M4内核?”答案选STM32F407就行。而实际开发选型时,就按性能、功耗、外设资源三要素平衡,别盲目用贵的。
5. 实操经验:备考期必背的知识清单和常见失分点
最后这部分,我把这几年带人复习时总结的“必背清单”直接列出来。考前把这几页过个两三遍,选择题能蒙对的概率都能大不少。
5.1 必背公式与必记表格
- 定时器定时时间:T = (PSC+1) × (ARR+1) / 定时器时钟频率。例如STM32F103定时器挂APB1,最高72MHz。
- PWM频率:f = 定时器时钟 / ((PSC+1) × (ARR+1));占空比 = CCR / (ARR+1)。
- 波特率计算:USART波特率寄存器的值和PCLK有关,但考题更喜欢直接给你波特率让你算一个字节的传输时间。
- IO口配置表:LED → 推挽输出;按键 → 输入上拉/下拉;TTL电平传感器 → 浮空输入;模拟数字转换 → 模拟输入。
- 中断优先级分组表:STM32F103只有4种分组方式(从0到3),分组0 = 0位抢占 + 4位子优先级;分组1 = 1位抢占 + 3位子优先级;分组2 = 2位抢占 + 2位子优先级;分组3 = 3位抢占 + 1位子优先级。考试如果问“共有几位抢占几位子优先”,这张表直接默写。
- 启动模式表:前面给过,BOOT0、BOOT1的组合,考试概率非常高。
5.2 代码填空题的常见套路
- 开关某个时钟:
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);这个函数名考试经常挖掉“APB2”或“ENABLE”让你填。 - GPIO初始化结构体的三个成员:GPIO_Pin、GPIO_Mode、GPIO_Speed。
- 读取输入电平:
GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_0);输出电平:GPIO_WriteBit或GPIO_SetBits/GPIO_ResetBits。 - 串口发送一个字节:
USART_SendData(USART1, ch);等待发送完成:while(USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET);
5.3 最容易被扣分的5个细节
- 写程序流程图时忘记标注“中断入口”和“中断返回”。很多学校要求代码配流程图,漏掉这两处直接扣分。
- 定时器中断服务函数里放delay延时。这是大忌,面试官看到会直接摇头,因为中断里必须“快进快出”。
- 串口打印格式漏了换行符。代码分析题让你写输出结果时,你写“123”而标准答案是“123\r\n”,一分都没得。考试时凡是串口打印相关的,看清有没有带转义符。
- GPIO速度配置不写。GPIO_Speed有些模板工程漏了,导致LED高频闪烁异常。考试代码填空题主动补这个基本就踩中得分点。
- 初始化顺序颠倒。比如先初始化GPIO再开外设时钟,这在标准库工程里直接死机;但考试主要是让你“挑错”,你得说出“这样写问题出在哪”——答案是:外设时钟没开之前,对寄存器操作无效,甚至硬件错误。
5.4 补考、缓考、复试的不同应对策略
补考和缓考的卷子,一般比正常期末考试简单一些,但考查范围非常关键:补考的题往往更偏基础,基本不会考综合大题,选择题和填空题占比高。所以补考复习的重点是把前面的定义、表格和计算公式背熟,外设只看GPIO、定时器、串口这三个就够。
复试面试就不一样了。面试官问嵌入式系统的时候,基本就是抓几个方向深挖:
- 你做过什么STM32项目?项目里用了哪些外设,遇到的最大的坑是什么?
- 什么是中断优先级?什么是抢占优先级和子优先级?
- 说说SPI、I2C、UART的区别,分别用在什么场景?
- 看门狗的作用是什么?独立看门狗和窗口看门狗有什么区别?
- FreeRTOS里任务的优先级和嵌入式中断优先级有什么关系?
我跟很多复试上岸的同学聊过,普遍反馈:面试官不要求你面面俱到,但要求你自己介绍过的东西必须经得起问。所以在准备复试时,与其泛泛地去背“嵌入式系统概述”,不如把你自己做过的一个小项目(比如智能台灯、两轮差速小车、基于STM32的温湿度监测)吃透,把项目里用到的每个外设原理、每行关键代码的逻辑都弄明白。
如果你想在速成课基础上扩展提升,热点里还有一个方向绕不开:LVGL图形库、FreeRTOS操作系统、ESP8266蓝牙模块和K210视觉模块的通信。它们确实是面试时能加分的干货,但因为内容量太大,完全不属于期末考试范围,我就不展开了。速成课的主要目标,永远是“先让你稳稳过了这一科”。
6. 最后的建议:速成不等于囫囵吞枣,跑通一个完整Demo胜过盲目看十集视频
如果你正在看这套课程,我希望你别只是开着视频“听着玩”,而是准备好电脑,打开Keil,跟着视频里的代码当场实践。我在实际带人复习时发现一个普遍规律:“跟着敲一遍”的效果,是“只看不敲”的三倍以上。
你甚至可以先把视频里的关键代码抄下来,把注释写上,然后尝试改几个参数(比如改LED引脚号、改定时器的ARR值),再观察现象。你亲手改坏过几行代码之后,对那些函数参数的记忆反而会变得非常牢固——因为“改坏了就要查原因”,查原因的过程就是你真正开始理解的过程。
最后再分享一个我个人的复习小技巧:考前最后一晚,把教材目录翻一遍,把每章标题读给自己听,看看能不能用一两句话说出这章考什么。如果你发现某章完全想不出来,哪怕再晚也要翻到那一页扫一眼。嵌入式系统这门课,章节与章节之间的联系非常紧密,你在考前脑子里做一次“章节串联”,到了考场上审题速度会快很多。
就把上面这些内容消化吸收掉,配合速成课视频和环境搭建工具包,按那5小时的节奏走一遍,然后把实验代码亲手调通、把必背表格默写一遍,这门课你可以很从容地去考。别有太大压力,嵌入式系统的期末考试,永远没有网上说的那么恐怖;真正恐怖的是把时间浪费在生产“工具准备”上,一直没开始复习。