嵌入式就业方向以及具体的细分岗位如下:
方向
岗位
单片机开发
单片机开发工程师(MCU开发工程师)
RTOS开发工程师
Linux应用开发
Linux应用工程师
QT开发工程师
Linux多媒体开发工程师
Linux驱动开发
Linux/Android驱动开发工程师
Linux设备驱动开发工程师
Linux内核驱动开发工程师
Android系统开发
Linux系统移植工程师
Android系统开发工程师
像嵌入式软件工程师、嵌入式系统工程师之类的岗位,可能是上述各种方向的,要根据岗位具体要求来判断
今天主要讲的是单片机开发学习路线
-
C语言基础
学习内容:
基本语法:数据类型、运算符、控制结构、函数、数组、指针、结构体等基本概念
学完基础知识可以做一些小游戏项目,比如五子棋、贪吃蛇这些
学习资源:
① 视频:
浙江大学翁凯老师的《C语言程序设计》
浙江大学翁恺教你C语言程序设计!C语言基础入门!_哔哩哔哩_bilibili
郝斌老师的C语言课程也不错,但视频画质和授课软件比较落后,这里就不推荐了,大家感兴趣可以看看,B站上有个最新修复版的
② 书籍:
入门书籍:《C Primer Plus》和《C语言程序设计》虽然我这里说是入门书籍,但是对计算机一窍不通的小白还是不友好,比较适合有编程基础的读者。可以学完上面的视频教程有一些C语言基础后再来读,收获会很大。两者难度差不多,可以任选其一
进阶书籍:《C专家编程》介绍了大多数C语言的坑,精髓很多;《C陷阱与缺陷》阐述了很多容易让人误解的语法细节,重在帮助C程序员绕过编程过程中的陷阱和障碍;《C和指针》指针是C语言的重难点,所以一本专门讲指针的书还是非常需要的。但其实这本书也讲了很多指针外的内容,这些内容稍微有点多余了。
-
单片机
毫无电路基础的小白选手推荐先买开发板进行学习;有一定数电模电基础的,可以考虑最小系统板+面包板+外设电路组合学习
① C51
有基础的建议直接跳过,学习STM32。
零基础小白、转行等人员建议从8位的51单片机开始学,因为学起来简单,学的过程会相对轻松和有成就感,对于零基础的人群其实稳住学习心态是最重要的。
具体学习内容直接看下面的视频,不多说了,51单片机自学就可以了。
学习资源:
郭天祥老师的《十天学会51单片机》
10天学会51单片机—郭天祥_哔哩哔哩_bilibili
② STM32
学习内容:
1)轮询、定时器、中断
2)外设通信:GPIO、时钟、UART、DMA、SPI、I2C、LED灯、传感器、OLED屏等
3)标准库函数和HAL库开发
4)Keil调试
5)项目入门:寻迹避障智能小车、智能垃圾桶、温湿度监测系统等。
STM32智能小车(蓝牙+避障功能)_哔哩哔哩_bilibili
【STM32项目实战】STM32智能垃圾桶项目教程 新手小白入门必备 配合江科大STM32教程食用更佳 超声波/舵机嵌入式开发/单片机/硬件/软件/物联网_哔哩哔哩_bilibili
【STM32项目实战】温室大棚智能环境监测项目教程 智慧农业系统 远程监控 光照温湿度监测 数据存储 嵌入式开发/单片机/毕业设计/电子设计/硬件/软件/计算机_哔哩哔哩_bilibili
后面两个是我们自己发布的视频,源码和课件也都在,私信我分享给大家~
学习资源:
江科大的《STM32入门教程》STM32入门教程-2023版 细致讲解 中文字幕_哔哩哔哩_bilibili
开发板推荐野火和正点原子的,两家价格差别不大,任选一个就可以,买了板子有配套的课程。野火的代码相对更加规范严谨,而正点原子的代码风格不太适合作为实际项目的参考。但是正点原子的文档资料会更详细一些,大家自行考虑。
如果觉得开发板贵的话也可以看铁头山羊的教程,自己动手来搭建
铁头山羊stm32 入门教程_哔哩哔哩_bilibili
我这边也有十几个项目可以学习,硬件物料我们可以直接借给你使用,项目很全,难度从基础到进阶再到高级都有。
篇幅有限,完整大纲也是私聊我领取一份
同时我们也有自己的STM32项目和基础教程,推荐大家观看,里面有FreeRTOS项目和基础教学
【8个实战项目教程】学完江科大STM32后必看,含FreeRTOS项目和基础教学/LORA/单片机/物联网/智能垃圾桶/环境监测/领绿学长/江协科技/正点原子_哔哩哔哩_bilibili
③ 国产单片机
④ RISC-V内核单片机
③④这两种类型单片机招聘岗位上要求很少,推荐大家还是学习STM32单片机。岗位上有额外要求或者自己感兴趣的可以学一学,比如兆易创新单片机,既是国产也是RISC-V内核
-
开发环境
学习内容:
集成开发环境(IDE):Keil MDK、IAR、STM32CubeMX、VScode等
编译工具链:GCC工具链(开源的通用编译工具链,支持多种架构)、ARM工具链(专门针对ARM架构的,在Keil MDK等IDE中,ARM编译工具链是默认的编译工具链)等
学习资源:
Keil 5安装资源和教程,资源在简介里
【配音+字幕】Keil 5下载安装激活教程 详细靠谱C51、STM32(附链接)_哔哩哔哩_bilibili
Keil 5学习
【教程】Keil_v5单片机开发软件使用技巧(经验总结)_哔哩哔哩_bilibili
- 硬件基础
数电模电、微机原理等基础知识,了解基本电路原理,像数字电路中的逻辑门、触发器、寄存器等,以及模拟电路中的放大器、滤波器等;熟悉常用的电子元器件;原理图理解和使用、常见元件焊接,常用工具使用(万用表、示波器、逻辑分析仪等)
(硬件部分到时候做硬件学习路线的时候再细说,这边不细说学习资源了)
-
RTOS(实时操作系统)
RTOS包括FreeRTOS、RT-Thread、μC/OS等,这里还是推荐学习FreeRTOS,因为招聘要求上写的大多数是这个
学习内容:
RTOS等实时操作系统基础(任务、锁、信号量、消息队列)
FreeRTOS操作系统移植
RTOS之前的学习路线是裸机开发,进阶建议学习RTOS实时操作系统,是加分项同时也是现在很多单片机岗位的必备需求,下面给大家引申一个概念:
裸机开发和RTOS开发的区别
裸机开发:指的是不依赖于任何操作系统,程序的运行,完全取决于代码的逻辑设计,硬件设备的固定设定。开发者需要直接管理硬件资源,如内存、外设等,以及处理中断和异常,不需要操作系统的参与和调度。
RTOS开发:裸机程序难以解决的问题就是,控制每个任务的运行时间。难以消除任务与任务之间的相互影响。RTOS的开发就是运行一个实时操作系统,由RTOS来管理硬件资源、任务调度、中断处理等。开发者在RTOS上编写应用程序,通过API与RTOS交互,实现多任务并发执行。RTOS让多个任务轮流运行,不再需要我们手工在任务函数去使用状态机拆分程序
学习资源:
基础学习:推荐韦东山老师的这个课程,更清晰,适合新手
FreeRTOS入门与工程实践 --由浅入深带你学习FreeRTOS(FreeRTOS教程 基于STM32,以实际项目为导向)_哔哩哔哩_bilibili
项目推荐:STM32移植FreeRTOS智慧安全厨房
我们老师制作的教学视频,前三节可白嫖,有完整录播课STM32移植FreeRTOS智慧安全厨房实战项目-领绿学长一对一 (linglv123.com)
和一对一会议辅导(老师一对一教授项目,先发学习任务和学习资料给学生学习,平时在群内一对一答疑,需要会议辅导时开腾讯会议进行一对一的指导)两种学习模式
STM32移植FreeRTOS智慧安全厨房实战项目 FreeRTOS基础教学 单片机/操作系统/物联网/Linux/嵌入式开发/Cube/模块连接_哔哩哔哩_bilibili
-
C语言进阶
数据结构:线性表、栈、队列、链表等
基础算法:排序(插入排序、冒泡排序)和查找(排序查找、二分查找)
-
物联网通信技术
蓝牙BLE、WIFI、4G、lora、zigbee等
- 嵌入式高级外设
摄像头camera、USB、电容触摸屏等
-
GUI技术
QT、LVGL、串口屏等
学习资源:
项目推荐:LVGL+FreeRTOS开发基于ESP32S3的智能终端系统,FreeRTO和GUI技术一网打尽(可以白嫖前三节,有录播课但录播课硬件部分讲解较少,推荐学长一对一会议辅导)
LVGL+Freertos开发基于ESP32S3的智能终端系统,嵌入式开发/Arduino/VSCode/GUI/STM32/Linux/软件/硬件/单片机_哔哩哔哩_bilibili
-
通信协议
socket/tcp/udp、lwip、RS485、modbus、mqtt、can、lin、uds诊断等
-
代码优化
代码规范:缩进、注释、命名、可读性
代码可移植:平台数据类型、对齐、大小端、多用库函数
-
低功耗
睡眠、停机、待机、测试指标
-
编译/链接脚本
gcc、makefile、加载地址、数据段/代码段
-
硬件进阶
原理图绘制、2-4层PCB layout、电路分析和调试等
-
常用算法
PID、卡尔曼滤波等
进阶学习这部分的大部分内容推荐大家直接通过项目进行学习就可以了
-
物联网
端云对接、fota、opencpu式开发等
-
智能汽车和自动驾驶
CAN、LIN、UDS、车规级MCU、Autosar、ROS、SLAM、hypervisor、车载以太网、DoIP等
-
电机控制
交流电机、直流有刷、直流无刷BLDC(有霍尔、无霍尔、FOC算法)、舵机、步进电机、伺服电机等
-
新能源和储能
数字电源、BMS、EMS、双向PCS、UPS等
B站主页: 嵌入式自学-领绿学长投稿视频-嵌入式自学-领绿学长视频分享-哔哩哔哩视频 (bilibili.com)