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

news2024/9/28 14:05:38

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

方向

岗位

单片机开发

单片机开发工程师(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单片机自学就可以了。

学习资源:

郭天祥老师的《十天学会51单片机》https://www.bilibili.com/video/BV1Ks411Y7mi/

图片

江科大的《C51单片机入门教程》https://www.bilibili.com/video/BV1Mb411e7re/

图片

② STM32

学习内容:

1)轮询、定时器、中断

2)外设通信:GPIO、时钟、UART、DMA、SPI、I2C、LED灯、传感器、OLED屏等

3)标准库函数和HAL库开发

4)Keil调试

5)项目入门:寻迹避障智能小车、智能垃圾桶、温湿度监测系统等。

寻迹避障小车

https://www.bilibili.com/video/BV1K1421y7Yk/

图片

智能垃圾桶

https://www.bilibili.com/video/BV1tzWge8EUc/

图片

温室大棚智能环境监测

https://www.bilibili.com/video/BV1JvsLeaEKU/

图片

后面两个是我们自己账号上自己发布的视频,源码和课件也都整理好了(+V:linglv03)免费分享给大家~

图片

图片

学习资源

江科大的《STM32入门教程》

https://www.bilibili.com/video/BV1th411z7sn/

图片

开发板推荐野火和正点原子的,两家价格差别不大,任选一个就可以,买了板子有配套的课程。野火的代码相对更加规范严谨,而正点原子的代码风格不太适合作为实际项目的参考。但是正点原子的文档资料会更详细一些,大家自行考虑。

如果觉得开发板贵的话也可以看铁头山羊的教程,自己动手来搭建https://www.bilibili.com/video/BV11X4y1j7si/

图片

我们这边也有十几个项目可以学习,硬件物料我们可以直接借给你使用。项目很全,难度从基础到进阶再到高级都有。

我们的教学模式是老师一对一线上会议辅导的模式,不仅给足学生自由学习的时间,同时也能提供专业的一对一指导,价格更是十分友好

篇幅有限,完整大纲加微信领取一份(+V:linglv03

图片

图片

同时我们也有自己的STM32项目和基础教程,推荐大家观看,里面有FreeRTOS项目和基础教学

https://www.bilibili.com/video/BV18F411f7gM/

图片

③ 国产单片机

④ RISC-V内核单片机

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

3. 开发环境

学习内容:

1)集成开发环境(IDE):Keil MDK、IAR、STM32CubeMX、VScode等

2)编译工具链:GCC工具链(开源的通用编译工具链,支持多种架构)、ARM工具链(专门针对ARM架构的,在Keil MDK等IDE中,ARM编译工具链是默认的编译工具链)等

学习资源:

Keil 5安装资源和教程,资源在简介里

https://www.bilibili.com/video/BV1Pu4m1u7sA/

图片

Keil 5学习

https://www.bilibili.com/video/BV1is411p7RB/

图片

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让多个任务轮流运行,不再需要我们手工在任务函数去使用状态机拆分程序

学习资源:

基础学习:推荐韦东山老师的这个课程,更清晰,适合新手

https://www.bilibili.com/video/BV1Jw411i7Fz/

图片

项目推荐:STM32移植FreeRTOS智慧安全厨房

我们老师制作的教学视频,前三节可白嫖(可老师一对一会议辅导)

https://www.bilibili.com/video/BV16m4y177jF/

图片

也有完整录播课(仅提供录播课和代码,不提供任何答疑服务)

https://www.linglv123.com/series/XL100095xxxxxx

图片

2. C语言进阶

1)数据结构:线性表、栈、队列、链表等

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

3. 物联网通信技术

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

图片

4.  嵌入式高级外设

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

图片

5. GUI技术

QT、LVGL、串口屏等

学习资源:

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

https://www.bilibili.com/video/BV1cw4m1y773/

图片

图片

6. 通信协议

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

7. 代码优化

代码规范:缩进、注释、命名、可读性

代码可移植:平台数据类型、对齐、大小端、多用库函数

8. 低功耗

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

9. 编译/链接脚本

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

10 硬件进阶

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

11. 常用算法

PID、卡尔曼滤波等

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

其他方向需额外学习:

● 物联网

端云对接、fota、opencpu式开发等

● 智能汽车和自动驾驶

CAN、LIN、UDS、车规级MCU、Autosar、ROS、SLAM、hypervisor、车载以太网、DoIP等

● 电机控制

交流电机、直流有刷、直流无刷BLDC(有霍尔、无霍尔、FOC算法)、舵机、步进电机、伺服电机等

● 新能源和储能

数字电源、BMS、EMS、双向PCS、UPS等

最后推荐一下我们的校招学习路线,适合应届生参加校招来参考:

https://www.bilibili.com/video/BV14x4y1J7a2/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2088935.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【建议收藏】100个Python精选库

Python为啥这么火,这么多人学,就是因为简单好学,功能强大,整个社区非常活跃,资料很多。而且这语言涉及了方方面面,比如自动化测试,运维,爬虫,数据分析,机器学…

鸿蒙(API 12 Beta3版)【识别图像数据】

基本概念 图像数据识码能力支持对相机预览流数据中的码图进行扫描识别,并获取信息。 场景介绍 图像数据识码能力支持对相机预览流数据中的条形码、二维码、MULTIFUNCTIONAL CODE进行识别,并获得码类型、码值、码位置信息和相机变焦比。该能力可用于一…

马斯克被告“狗狗币传销”!索赔2580亿美元,法官驳回诉讼!马斯克与狗狗币的不解之缘!

在数字货币领域,每一次波动都牵动着全球投资者的神经,而埃隆马斯克(Elon Musk)——这位科技界的传奇人物,更是以其独特的言行不断在加密货币市场上掀起波澜。近期,关于马斯克与狗狗币(Dogecoin&…

【C++STL详解(十三)】unordered系列容器的介绍与使用

目录 前言 一、unordered_map 介绍 使用 构造方式 修改 容量 迭代器 元素访问 查询 桶操作 二、unordered_set 介绍 使用 构造 修改 容量 迭代器(只有单向) 查询 桶操作 三、unordered系列的性能测试 前言 前面提到的map/set是C98提供的关联…

使用手机挖掘IDOR漏洞赚取1500美元赏金

在今天的文章中,笔者将分享如何在手机上发现两个不安全的直接对象引用 (IDOR) 实例,并因此获得 1500 美元的赏金。 信息收集:了解目标 首先,我通常使用 Google dork(谷歌语法:如“site:target.com about”…

斯坦福UE4 C++课学习补充24:伤害数值

创建并调用数值显示UI 显示数值用UMG实现。创建名为DamagePopup_Widget控件蓝图,添加一个数值文本框。设置如下,设置文本框为Is Variable 将场景投射到屏幕Project World Location to Widget Position节点:它的作用是在UE中将一个世界空间中…

智能新未来:2024世界机器人大会全景解析

8月21日至25日,2024世界机器人大会在北京北人亦创国际会展中心盛大举行。本次大会以“共育新质生产力 共享智能新未来”为主题,汇聚了全球近170家机器人企业,展示了超过600款创新产品,其中首发新品达60余款,人形机器人…

晚宴扫码查询座位号

在晚宴活动中,快速准确地查询座位号是提升参与者体验的关键。以下是通过扫码查询系统实现座位号查询的详细步骤。 步骤一:电脑端上传查询信息 1. 访问云分组官网。 2. 使用微信扫码登录系统。 3. 点击菜单“我的查询”。 步骤二:准备查询信…

文心快码帮你解大厂面试题:如何使用shell找到access log,如何找到访问量最多的url?

🎁👉点击进入文心快码 Baidu Comate 官网,体验智能编码之旅,还有超多福利!🎁 【大厂面试真题】系列,带你攻克大厂面试真题,秒变offer收割机! ❓今日问题:在8…

Java框架spring(二)

一、AOP面向切面编程 1、AOP的概念 AOP(AspectOrientedProgramming),意为:面向切面编程,通过 预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术。 AOP是OOP的延续,是软件开发中的一个热点&…

URP custompasscustom render objects 下

上文 https://blog.csdn.net/qq_35158695/article/details/141708043?spm1001.2014.3001.5501 上次说了绘制流程,还需要指定FBO 在renderpass的这个configure函数里,设置render target 这里的纹理是从shader里map出来的ID,不过我看他文章没…

STM32F1+HAL库+FreeTOTS学习7——列表和列表项

STM32F1HAL库FreeTOTS学习7——列表和列表项 列表和列表项简介列表列表项迷你列表项 列表项API函数介绍1. 初始化列表2. 初始化列表项3. 列表末尾插入列表项4. 列表插入列表项5. 移除列表项6. 补充:FreeRTOS中操作列表和列表项的宏 列表项的插入和删除实验总结 上一…

人工智能时代,AI数据服务行业面临的机遇与挑战

随着大数据、云、物联网、人工智能等信息科技技术的发展以及互联网设备的普及,各行业产生了前所未有海量的AI数据服务需求,彻底宣告了数据时代的来临。 首先,物联网的发展更使线下业务产生的大量数据被采集起来,世界各地的AI数据…

需求管理软件对比:2024年10款推荐工具

本文将介绍10款需求管理软件:1.PingCode;2. Worktile;3. 开源中国社区 Gitee;4. 金动力;5. 氚云;6. 协作云;7. 麦塔在线;8. Height;9. Plaky;10. ActiveColla…

万龙觉醒辅助:屠龙攻略大全!VMOS云手机带你组团抓龙!

在《万龙觉醒》中,使用VMOS云手机能够为玩家提供专属定制版的云手机,不仅内置游戏安装包,还无需重新下载安装游戏。这一切都让玩家的游戏体验更加便捷和高效。VMOS云手机能够辅助游戏的自动化运行,支持24小时云端运行,…

论文《Adversarial Examples on Graph Data: Deep Insights into Attack and Defense》笔记

【IG-Attack 2019 IJCAI】本文提出了一种基于integrated gradients的对抗攻击和防御算法。对于攻击,本文证明了通过引入integrated gradients可以很容易解决离散问题,integrated gradients可以准确反映扰动某些特征或边的影响,同时仍然受益于…

【并发编程】从AQS机制到同步工具类

AQS机制 Java 中常用的锁主要有两类,一种是 Synchronized 修饰的锁,被称为 Java 内置锁或监视器锁。另一种就是在 JUC 包中的各类同步器,包括 ReentrantLock(可重入锁)、Semaphore(信号量)、Co…

走出新手村,软件测试银行项目怎么测试 + 面试题(答案)

前言 业务: 银行类app具体模块业务讲解: 掌上生活(消费/理财) 消费: 与电商平台业务类似 饭票:GPS定位城市服务、饭票购买消费、餐厅查询、代金券、周三五折、banner图、我的饭票、我的抵扣券 影票 …

RKNPU2从入门到实践 ---- 【9】使用RKNPU2的C API接口将RKNN模型部署在RK3588开发板上

注:作者使用的平台为Ubuntu20.04虚拟系统,开发板为RK3588,开发板上面的系统为Ubuntu22.04。 前言 本博文我们要学习使用 RKNPU2 提供的 C API 接口将RKNN模型部署在RK3588开发板上,完成测试图片在开发板上的推理工作。C API接口…

【书生3.2】Lagent 自定义你的 Agent 智能体

Lagent 自定义你的 Agent 智能体 1 环境准备2 启动模型3 部署lagent4 可视化页面及配置5 自定义工具的智能体 1 环境准备 直接复用之前的xtuner或者llamaindex环境 # 安装其他依赖包 conda activate llamainde pip install termcolor2.4.0 pip install lmdeploy0.5.2pip inst…