很多人学嵌入式,是从一块开发板开始的:点灯、串口打印、跑个 RTOS,看起来就能干活了。但真到调硬件的时候,问题就来了——三极管为什么这样接、运放输出为什么不对、ADC 采回来的值为什么一直跳、单片机上电为什么偶尔不启动。这些问题的答案,往往不在代码里,而在模拟电路和计算机原理这两块最容易被跳过的地基上。

这个阶段的内容,就是专门补这两块地基的。它不教你写业务逻辑,也不承诺学完能做什么项目,它解决的是另外一件事:当你面对一张原理图或者一段异常波形时,脑子里有没有可用的分析框架。

先搞清楚:你到底缺哪一块

如果你之前的学习路径是「买板子—照教程写代码—能跑就行」,那么大概率会在下面几个地方卡住。可以对照着判断一下自己属于哪种情况:

  • 看得懂 GPIO 配置,但看不懂开发板上的电源部分,不知道去耦电容为什么这么放。
  • 会用 ADC 采样,但说不清采样保持电路和参考电压对结果的影响。
  • 知道单片机有寄存器、有总线,但讲不清取指、译码、执行到底发生了什么。
  • 能调通串口,但对时序、电平标准、信号完整性没有概念,遇到通信不稳只能靠试。
  • 面试被问到「三极管和 MOS 管的区别」「什么是冯·诺依曼结构」时只能背结论。

这几条里中了两条以上,这个阶段的顺序就不该跳过。反过来,如果你已经系统学过电路分析和计算机组成,可以直接往后走,不用在这里耗时间。

模拟电路部分:不是让你做电路设计

这里要建立的认知是:模拟电路在嵌入式里主要扮演「接口」和「信号调理」的角色。你不需要会设计复杂的放大电路,但需要能看懂传感器输出的信号经过了什么处理才进到 MCU 的引脚。

需要能回答的问题包括:分压、限流、上拉下拉各自在解决什么;二极管和稳压管在保护电路里怎么起作用;三极管作为开关时工作在哪个区、基极电阻怎么估;运算放大器的虚短虚断怎么用来快速推算输出;滤波电容取值和信号频率是什么关系。这些都是看原理图时天天要用的东西,不是理论摆设。

学这一块时建议手边放着万用表和一块面包板。看到分压就实际搭一下量一量,比看十遍公式有用。

计算机原理部分:把「代码怎么变成电信号」串起来

很多人对计算机原理的印象停留在考试名词。放在嵌入式语境下,它其实回答的是一条具体链路:你写的 C 语句,怎样变成指令、怎样被取出来执行、数据在寄存器和内存之间怎么流动、中断发生时 CPU 做了什么。

这部分需要能讲清楚:指令周期的几个阶段各自在做什么;程序计数器、栈指针、状态寄存器各自管什么;存储器的层次结构为什么这么设计;总线和地址空间的关系;中断和轮询的差别以及中断响应的完整过程。

这些概念后面会反复用到。学 GD32 时看启动文件、学 Linux 驱动时看内存映射,如果这里没打通,后面就只能靠背。

看完之后,你应该能回答的问题

  • 拿到一张陌生的单片机最小系统原理图,能不能说出每个外围元件大致在做什么?
  • 一个模拟传感器信号进入 ADC 之前,通常要经过哪些调理环节,为什么?
  • 一条 C 语言赋值语句,从编译到在 CPU 上执行,中间经历了哪些步骤?
  • 中断发生时,CPU 和栈上分别发生了什么,为什么现场保护是必要的?
  • 为什么嵌入式开发要关心时序,而不是只关心逻辑对不对?

如果这些问题你现在答不上来,或者只能答个大概,那这一阶段就是给你准备的。它的价值不在于让你多会一个工具,而在于把后面所有阶段里的「为什么」变得可以解释。学的时候别贪快,模拟电路和计算机原理都属于那种回去补一次、后面省很多次折腾的内容。

黑马嵌入式|hei马嵌入式开发2024|01阶段模拟电路计算机原理

嵌入式开发全链路实战

编辑点评

系统覆盖模拟电路、计算机原理、编程语言等多领域,适合初学者构建嵌入式开发知识体系。

⭐ 编辑推荐

从模拟电路基础到嵌入式系统开发,全方位掌握嵌入式开发技能。

课程亮点

• 全链路实战教学
• 涵盖模拟电路、计算机原理、编程语言
• 适合嵌入式开发初学者

课程目录

黑马嵌入式
hei马嵌入式开发2024
01阶段模拟电路计算机原理
02阶段C语言编程
03阶段STC8增强型单片机开发
04阶段Python与上位机开发
05阶段GD32开发
06阶段lvgl开发
07阶段JieLiAC79开发
08阶段Linux驱动ros
09阶段机器狗项目
在线版24年嵌入式课件
计算机组成原理
模拟电路
视频
01课程背景介绍.mp4  [27.4MB]
02学习步骤.mp4  [26.2MB]
03计算机历史回顾.mp4  [48.6MB]
04位值计数法.mp4  [48.7MB]
05十进制和二进制.mp4  [67.4MB]
06二进制的运算.mp4  [22.2MB]
07常见的容量单位.mp4  [38.0MB]
08二进制表示文字.mp4  [43.2MB]
09Unicode编码.mp4  [8.3MB]
10二进制存储图片.mp4  [75.8MB]
11声音的二进制存储.mp4  [17.0MB]
12视频文件的二进制存储.mp4  [23.8MB]
13与门电路的搭建.mp4  [51.1MB]
14或门电路的搭建.mp4  [13.5MB]
15非门和异或门电路搭建.mp4  [20.8MB]
16用基础门电路可以搭建任意电路.mp4  [21.1MB]
17与门电路的原理图.mp4  [47.5MB]
18或门异或门的原理图.mp4  [28.2MB]
19门电路pcb的设计.mp4  [56.5MB]
20230821234409-0-2.gif  [0.0MB]
20半加器电路的搭建.mp4  [42.3MB]
21全加器电路搭建.mp4  [106.3MB]
22搭建8位的加法器.mp4  [59.9MB]
23改造加法器电路的输入和输出.mp4  [31.8MB]
24下拉电阻修复加法器的bug.mp4  [62.9MB]
25计算机溢出的问题.mp4  [53.0MB]
26补码的计算方法.mp4  [45.7MB]
27乘法和除法电路的实现原理.mp4  [53.9MB]
28系统的加减乘除组件.mp4  [30.6MB]
29电路记忆数据的原理.mp4  [42.7MB]
30用锁存器记录一个bit.mp4  [32.2MB]
31用8个锁存器搭建一个8位寄存器.mp4  [28.1MB]
32使用元器件数量的计算.mp4  [16.3MB]
33时钟的概念.mp4  [92.2MB]
34带有边缘触发的寄存器的实现.mp4  [19.4MB]
35利用继电器构建一个驱动器.mp4  [32.6MB]
36优化内存的走线.mp4  [48.8MB]
37内存单元格的构建.mp4  [41.3MB]
38构建内存单元格和内存地址.mp4  [72.3MB]
39内存条的堆叠工艺.mp4  [77.2MB]
40计算机系统里面的重要概念.mp4  [27.2MB]
41构建一个好用的8位寄存器.mp4  [39.8MB]
42构建一个ALU模块.mp4  [39.0MB]
43搭建CPU的内部ALU.mp4  [80.1MB]
44搭建计算机的外部内存.mp4  [75.8MB]
45计算机系统搭建粗稿.mp4  [86.6MB]
46手动版本计算机一代.mp4  [19.4MB]
47手动版本计数器二代.mp4  [76.5MB]
48修复一个短路的小细节.mp4  [84.0MB]
49手动完成计算机程序的执行.mp4  [57.8MB]
50显卡和显存工作的原理.mp4  [65.3MB]
51显示器驱动程序原理.mp4  [36.9MB]
52查找表的工作原理.mp4  [21.8MB]
53增加CPU的控制单元.mp4  [74.7MB]
54CPU的控制器实现.mp4  [104.2MB]
55自动CPU的完成.mp4  [61.3MB]
56ip核后门和漏洞.mp4  [64.8MB]
57高性能cpu技术.mp4  [41.5MB]
58杂项知识点.mp4  [79.9MB]
附复习01.mp4  [38.3MB]

适合人群

  • 嵌入式开发初学者
  • 电子工程相关专业学生
  • 对嵌入式开发感兴趣的人群

学习收获

掌握嵌入式开发基础知识
学会使用多种编程语言进行嵌入式开发
具备独立开发嵌入式系统的能力

祝您学习愉快!

学有所成,前程似锦!