posts/embedded-learning-roadmap.md

嵌入式学习路线指南:从零基础到项目实战

学习路线 2026-08-31 4 分钟阅读 #嵌入式#STM32#C语言

嵌入式学习路线指南:从零基础到项目实战

嵌入式开发门槛并不高,难的是信息太杂、路线不清晰。这篇文章基于我自己的学习经历,梳理一条从零到实战的路线。

#一、第一阶段:打好编程基础

#1.1 C 语言(2~3 个月)

嵌入式开发 90% 的代码是 C 语言,以下知识点必须扎实:

  • 指针与指针运算(嵌入式调试的灵魂)
  • 结构体、联合体、位运算
  • 函数指针与回调
  • 内存管理(栈、堆、静态区)
c#include <stdio.h>

int main(void) {
    int value = 0x12345678;
    unsigned char *p = (unsigned char *)&value;

    for (int i = 0; i < 4; i++) {
        printf("byte[%d] = 0x%02x\n", i, p[i]);
    }
    return 0;
}

用上面这个小程序理解大小端,比背概念管用得多。

#二、第二阶段:单片机入门(2~3 个月)

推荐 51 单片机 或直接上 STM32

  • 点亮 LED,跑通编译、烧录、调试全流程
  • GPIO、串口、定时器、中断、I2C/SPI
  • 用 OLED 屏做一个小仪表

一个不错的第一个项目:串口接收指令 + 控制 LED + 上报温度,麻雀虽小五脏俱全。

#三、第三阶段:RTOS(1~2 个月)

裸机项目做到一定规模,就该接触实时操作系统了,首选 FreeRTOS:

概念一句话理解
任务每个 while 循环就是一个任务
信号量任务间的"排队叫号"
消息队列任务间传数据的管道
互斥锁保护共享资源的门禁

记住一个原则:能用消息队列就别共享全局变量,能减少 80% 的难查 Bug。

#四、第四阶段:嵌入式 Linux(2~4 个月)

嵌入式 Linux 是从单片机到高端设备的必经之路:

  1. 交叉编译工具链的安装与使用
  2. U-Boot 编译与启动流程
  3. 内核裁剪与设备树
  4. 根文件系统构建(Buildroot / Yocto)
  5. 驱动开发入门:字符设备驱动 Hello World

#五、第五阶段:项目实战

学习路线的终点是项目。建议做这几个方向的项目:

  • 智能家居:STM32 + WiFi 模块 + 云平台
  • 手持仪器:传感器 + OLED + 按键交互
  • 物联网网关:ESP32 + MQTT + 数据上报

#六、推荐学习资源

  • 正点原子 / 野火:STM32 入门视频与例程
  • 《FreeRTOS 内核实现与应用开发实战指南》
  • 韦东山:嵌入式 Linux 视频教程

#七、写在最后

嵌入式是一个重实践的领域,看 100 个小时视频不如自己焊一块板子、跑通一个中断。保持"遇到问题先读手册、再查资料、最后问人"的习惯,你一定能走通这条路。