嵌入式开发
简介
-
前置要求:无
-
该技术栈是一套从入门到精通嵌入式开发的教程,适合所有对嵌入式零基础的电子信息大类学生学习
学习路径
一、基础:构建理论双核
嵌入式开发是软件逻辑与硬件物理的精确耦合。本阶段旨在系统性地建立这一交叉学科的核心知识框架。为嵌入式打下理论根基。
硬件基础知识
硬件是嵌入式系统的物理基石
仪器使用
一个合格的嵌入式工程师需要会使用以下几种仪器:
-
万用表
-
示波器
-
信号发生器
-
稳压电源
-
焊接工具(电烙铁,热风枪,吸锡器…)
相关资源
万用表的使用,示波器的使用,信号发生器的使用,稳压电源的使用,电烙铁的使用
模拟电子学基础
数字逻辑基础
嵌入式系统处理的真实世界信号绝大多数是模拟的,而CPU只能处理数字信号。这一步信号转化过程需要专业的模电和数电知识才能理解。经过了系统的模电和数电学习之后,你将理解硬件系统的一些基本原理。
电子DIY基础
软件基础知识
C语言
C语言是嵌入式领域的通用语言,接近硬件底层,效率较高,是后续所有学习的基础。
相关资源
推荐书籍 :《C Primer Plus》、《C和指针》
计算机组成原理 :material-hexagon-slice-3
在学会C语言后,立即学习此科目,能让你深刻理解变量、指针、函数调用等在硬件层面是如何实现的,打通软件与硬件的桥梁。
相关资源
推荐书籍 :《深入理解计算机系统》
数据结构与算法
当程序需要处理大量数据或解决复杂问题时,良好的数据结构和算法是保证效率与稳定性的关键。而嵌入式工程师需要只需要掌握一些基础的数据结构和算法,如下:
-
数据结构:数组,链表,栈,队列、顺序表
-
算法:查找算法(顺序查找、二分查找);排序算法(冒泡排序、快速排序)
相关资源
这是青岛大学的教程,讲解详细清晰,学习嵌入式用不到全部,同学们听到75/173即可
推荐书籍 :《数据结构与算法分析-C语言描述》
Linux操作系统
现代复杂嵌入式系统(如物联网设备、机器人)多采用Linux。学习其使用和原理,是为进军高端嵌入式开发做准备。
相关资源
推荐书籍 :《鸟哥的Linux私房菜》
二、进阶:掌握嵌入式系统架构
在掌握了基础理论后,需要选择一个具体的微控制器(MCU)平台进行实践。本阶段将从对开发者最友好的平台开始,逐步深入,掌握嵌入式核心概念——GPIO、ADC/DAC、通信协议……。
Arduino :material-hexagon-slice-6
Arduino是一款非常适合新手入门的单片机系统,它封装了底层代码,使用者能专注于嵌入式逻辑的理解;它简化了C语言且具有丰富的库文件,能在几行代码内点亮LED,快速看到成果;同时它具有庞大的社区与生态,几乎所有问题都有线程的代码和解决方案可以参考。
相关资源
视频资源
网站资源
推荐书籍
《Arduino权威指南》学校图书馆找到的一本书,写的很全面
51单片机 :material-hexagon-slice-3
51单片机架构简单、资料丰富,适合借此学习裸机编程。相对于Arduino的底层封装,51单片机直接操作寄存器,直面硬件的本质——通过代码配置寄存器来控制引脚、外设。
相关资源
视频资源
江协科技 强烈推荐!(并非接广)
网站资源
推荐书籍
《手把手教你学51单片机(C语言版)》
STM32 :material-hexagon-slice-6
STM32基于ARM Cortex-M内核,是一款性能强大、外设丰富的单片机。其应用范围广泛,几乎覆盖了从消费电子到工业控制的几乎所有领域。学习并精通STM32单片机非常重要,这是开发复杂的、产品级的嵌入式应用的坚实基础。
STM32主要有三种开发方式:寄存器开发、标准库函数开发、HAL库开发
新手可以从标准库函数、HAL库开始学习,深入后再学习寄存器开发
相关资源
视频资源
江协科技 标准库函数开发,强烈推荐+1
正点原子 HAL库开发
尚硅谷 寄存器与HAL库开发都有
网站资源
野火 标准库函数开发
推荐书籍
《零死角玩转STM32》、《STM32 嵌入式系统开发—基于STM32CubeMX和HAL库》、《例说STM32》
ESP32 :material-hexagon-outline
ESP32是一款为物联网设计的单片机,它集成了Wi-Fi和蓝牙,非常适合于开发需要无线连接功能的智能设备。有相关方向开发兴趣的同学可以尝试学习。
相关资源
视频资源
网站资源
这一部分的通过看书学习的效果不如跟着视频、网站实操。建议大家跟着视频动手操作,将每一个知识转化成单片机项目上可见的现象。
三、实战项目:开发一款嵌入式产品
当系统地学习了单片机知识,熟练操作了GPIO、UART、ADC、I2C和定时器后,再通过实战项目的锤炼,将这些分散的“技能点”串联起来,积累嵌入式开发的经验。本阶段会介绍一个基础项目和一个进阶项目,鼓励大家在做项目过程中自主学习,补充前面没有学到的知识。
基础项目:51智能车
相关资源
进阶项目:STM32智能手表
相关资源
这一部分每个项目都提供了视频和网站两类资源,这是项目的两种实现范例,路径略有不同,大家可以综合参考,取其精华,并在过程中不断搜寻资料(善用搜索引擎),完善自己的作品。