问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

嵌入式单片机开发学习路线,从入门到高薪就业,保姆级学习攻略!

创作时间:
作者:
@小白创作中心

嵌入式单片机开发学习路线,从入门到高薪就业,保姆级学习攻略!

引用
CSDN
1.
https://m.blog.csdn.net/weixin_48867130/article/details/141712955

嵌入式系统是现代科技的重要组成部分,广泛应用于各种智能设备中。其中,单片机开发是嵌入式系统开发的重要方向之一,涉及物联网、智能家居、工业自动化等多个领域。本文将详细介绍单片机开发的学习路线,帮助读者从零基础开始,逐步掌握单片机开发的核心技能,最终实现高薪就业。

嵌入式就业方向及具体细分岗位

方向
岗位
单片机开发
单片机开发工程师(MCU开发工程师)、RTOS开发工程师
Linux应用开发
Linux应用工程师、QT开发工程师、Linux多媒体开发工程师
Linux驱动开发
Linux/Android驱动开发工程师、Linux设备驱动开发工程师、Linux内核驱动开发工程师
Android系统开发
Linux系统移植工程师、Android系统开发工程师

像嵌入式软件工程师、嵌入式系统工程师之类的岗位,可能是上述各种方向的,要根据岗位具体要求来判断。

单片机开发的学习路线

1. C语言基础

学习内容:

  1. 基本语法:数据类型、运算符、控制结构、函数、数组、指针、结构体等基本概念
  2. 学完基础知识可以做一些小游戏项目,比如五子棋、贪吃蛇这些

学习资源:

  • 视频:
  • 浙江大学翁凯老师的《C语言程序设计》:https://www.bilibili.com/video/BV1dr4y1n7vA/
  • 郝斌老师的C语言课程也不错,但视频画质和授课软件比较落后,这里就不推荐了,大家感兴趣可以看看,B站上有个最新修复版的
  • 书籍:
  • 入门书籍:《C Primer Plus》和《C语言程序设计》
  • 虽然我这里说是入门书籍,但是对计算机一窍不通的小白还是不友好,比较适合有编程基础的读者。可以学完上面的视频教程有一些C语言基础后再来读,收获会很大。两者难度差不多,可以任选其一
  • 进阶书籍:《C专家编程》介绍了大多数C语言的坑,精髓很多;《C陷阱与缺陷》阐述了很多容易让人误解的语法细节,重在帮助C程序员绕过编程过程中的陷阱和障碍;《C和指针》指针是C语言的重难点,所以一本专门讲指针的书还是非常需要的。但其实这本书也讲了很多指针外的内容,这些内容稍微有点多余了。

2. 单片机

毫无电路基础的小白选手推荐先买开发板进行学习;有一定数电模电基础的,可以考虑最小系统板+面包板+外设电路组合学习

① C51

有基础的建议直接跳过,学习STM32。零基础小白、转行等人员建议从8位的51单片机开始学,因为学起来简单,学的过程会相对轻松和有成就感,对于零基础的人群其实稳住学习心态是最重要的

具体学习内容直接看下面的视频,不多说了,51单片机自学就可以了。

学习资源:

② STM32

学习内容:

  1. 轮询、定时器、中断
  2. 外设通信:GPIO、时钟、UART、DMA、SPI、I2C、LED灯、传感器、OLED屏等
  3. 标准库函数和HAL库开发
  4. Keil调试
  5. 项目入门:寻迹避障智能小车、智能垃圾桶、温湿度监测系统等。

学习资源:

  • 江科大的《STM32入门教程》:https://www.bilibili.com/video/BV1th411z7sn/
  • 开发板推荐野火和正点原子的,两家价格差别不大,任选一个就可以,买了板子有配套的课程。野火的代码相对更加规范严谨,而正点原子的代码风格不太适合作为实际项目的参考。但是正点原子的文档资料会更详细一些,大家自行考虑。
  • 如果觉得开发板贵的话也可以看铁头山羊的教程,自己动手来搭建:https://www.bilibili.com/video/BV11X4y1j7si/

③ 国产单片机

④ RISC-V内核单片机

这两种类型单片机招聘岗位上要求很少,推荐大家还是学习STM32单片机。岗位上有额外要求或者自己感兴趣的可以学一学,比如兆易创新单片机,既是国产也是RISC-V内核

3. 开发环境

学习内容:

  1. 集成开发环境(IDE):Keil MDK、IAR、STM32CubeMX、VScode等
  2. 编译工具链:GCC工具链(开源的通用编译工具链,支持多种架构)、ARM工具链(专门针对ARM架构的,在Keil MDK等IDE中,ARM编译工具链是默认的编译工具链)等

学习资源:

4. 硬件基础

  1. 数电模电、微机原理等基础知识,了解基本电路原理,像数字电路中的逻辑门、触发器、寄存器等,以及模拟电路中的放大器、滤波器等;
  2. 熟悉常用的电子元器件;
  3. 原理图理解和使用;
  4. 常见元件焊接,常用工具使用(万用表、示波器、逻辑分析仪等)

硬件部分到时候做硬件学习路线的时候再细说,这边不细说学习资源了

进阶学习

  1. RTOS(实时操作系统)

RTOS包括FreeRTOS、RT-Thread、μC/OS等,这里还是推荐学习FreeRTOS,因为招聘要求上写的大多数是这个

学习内容:

  1. RTOS等实时操作系统基础(任务、锁、信号量、消息队列)
  2. FreeRTOS操作系统移植

RTOS之前的学习路线是裸机开发,进阶建议学习RTOS实时操作系统,是加分项同时也是现在很多单片机岗位的必备需求,下面给大家引申一个概念:

裸机开发和RTOS开发的区别

裸机开发:指的是不依赖于任何操作系统,程序的运行,完全取决于代码的逻辑设计,硬件设备的固定设定。开发者需要直接管理硬件资源,如内存、外设等,以及处理中断和异常,不需要操作系统的参与和调度。

RTOS开发:裸机程序难以解决的问题就是,控制每个任务的运行时间。难以消除任务与任务之间的相互影响。RTOS的开发就是运行一个实时操作系统,由RTOS来管理硬件资源、任务调度、中断处理等。开发者在RTOS上编写应用程序,通过API与RTOS交互,实现多任务并发执行。RTOS让多个任务轮流运行,不再需要我们手工在任务函数去使用状态机拆分程序

学习资源:

  1. C语言进阶

  2. 数据结构:线性表、栈、队列、链表等

  3. 基础算法:排序(插入排序、冒泡排序)和查找(排序查找、二分查找)

  4. 物联网通信技术

蓝牙BLE、WIFI、4G、lora、zigbee等

  1. 嵌入式高级外设

摄像头camera、USB、电容触摸屏等

  1. GUI技术

QT、LVGL、串口屏等

学习资源:

  • 项目推荐:LVGL+FreeRTOS开发基于ESP32S3的智能终端系统,FreeRTO和GUI技术一网打尽(可以白嫖前三节,有录播课但录播课硬件部分讲解较少,推荐学长一对一会议辅导):https://www.bilibili.com/video/BV1cw4m1y773/
  1. 通信协议

socket/tcp/udp、lwip、RS485、modbus、mqtt、can、lin、uds诊断等

  1. 代码优化

代码规范:缩进、注释、命名、可读性
代码可移植:平台数据类型、对齐、大小端、多用库函数

  1. 低功耗

睡眠、停机、待机、测试指标

  1. 编译/链接脚本

gcc、makefile、加载地址、数据段/代码段

  1. 硬件进阶

原理图绘制、2-4层PCB layout、电路分析和调试等

  1. 常用算法

PID、卡尔曼滤波等

进阶学习这部分的大部分内容推荐大家直接通过项目进行学习就可以了

其他方向需额外学习:

  • 物联网:端云对接、fota、opencpu式开发等
  • 智能汽车和自动驾驶:CAN、LIN、UDS、车规级MCU、Autosar、ROS、SLAM、hypervisor、车载以太网、DoIP等
  • 电机控制:交流电机、直流有刷、直流无刷BLDC(有霍尔、无霍尔、FOC算法)、舵机、步进电机、伺服电机等
  • 新能源和储能:数字电源、BMS、EMS、双向PCS、UPS等

最后推荐一下我们的校招学习路线,适合应届生参加校招来参考:https://www.bilibili.com/video/BV14x4y1J7a2/

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号