嵌入式开发新手入门指南

发表时间: 2024-06-13 11:06

来自网络

一、引言:

在讲嵌入式系统之前,我们先来了解一下什么是嵌入式系统。国内对嵌入式系统普遍接受的定义是:“以应用为中心,基于计算机技术,具有可定制化的软硬件,满足应用系统对功能可靠性、成本、体积、功耗等严格要求的专用计算机系统。”嵌入式系统可以往哪些方向发展呢?当然也可以交叉学习(比如与机器学习、人工智能交叉学习嵌入式系统)

二、嵌入式系统的大体方向是:

#1.单片机:(参考:51、STM32)工控程序(不跑OS)--入门容易,无非就是掌握一点汇编和C,照着datasheet就能写,发展前景一般,没有太大技术难度,除非你在算法上有优势,比如各种PID,模式识别里的神经网络,最优化里的遗传算法等等,但这些复杂的控制通常不是跑在裸机上的,而是跑在系统上(比如Linux);硬件--数字电子和模拟电子,懂看就行,难度不高,只懂单片机的工资不高(15k已经很不错了),没有太多技术含量,需要从海量的单片机中寻找合适的产品,看不同的datasheet。(发展前景:没前景)

#2.ARM:做这个的人很多(本科就业推荐)。

①编写底层驱动:入门和深入都不是件容易的事情,需要对硬件和OS有很深的理解,前景很好(月薪能到20k左右);

操作系统——相对复杂,如Linux、Android等。现在很多手机厂商都推出基于Linux的操作系统。通过修改内核、更换皮肤,就业机会还是可观的。

③应用开发:这个就是Android开发或者Linux上的应用开发(QT等)。做这个的人比较多,容易找工作,工资也不错。需要掌握C++/Java。

#3.FPGA:是硬件编程,入门容易,深挖难,需要对时序有非常深刻的理解,需要很多项目开发经验,就算很厉害,前途还是不明朗。FPGA是近几年最火的芯片之一,大部分公司要求研究生,只懂FPGA会限制就业机会,不太理想,建议当工具学。

#4.DSP:是算法方面的,研究生以上学历,算法和数学能力强,做不出来就别做了。

等效方向(如PCB画板)

3.OK,回到正题:嵌入式怎么学?现在分两种情况:1.就业 2.考研 1.就业

首先有一条比较原始的学习路线:51单片机-->STM32-->Linux系统/驱动-->APP(QT/Android)

虽然51和STM32没什么前途,但我还是要学的。为什么?因为要学才能入门。APP(QT/Android)暂时不学,有时间再学。学完Linux系统/驱动就可以就业了。

(1)学习51单片机和GIT

①51单片机:我们提供资料,学会在proteus上仿真,结合keil4做电子表,想玩的可以继续玩(不建议在51上花更多时间)

②git:廖雪峰的教程链接:Git入门-廖雪峰官网

(2)学习STM32

①选择哪款开发板:我个人比较推荐野火指南(STM32F103VET6)或者正点原子的精英STM32F103ZET6

怎么学?重点应该放在什么地方?

先说学习重点:系统定时器、中断、USART(串口通信)、IIC(重要)、SPI(重要)、ADC、TIM(高级定时器)

注意:如果在32期间学习C语言,建议在Linux下学习,在学习32的同时,花点时间熟悉Linux系统环境编程。

△首先按照你买的板子的附带视频(这期间很多硬件原理你都不会懂,别着急,大概了解一下就可以了),边看边打字,看到UART(串口)的时候就开始拿起我们的传感器去调整,学习剩下的事情。

△ 让我们从超声波模块HC-SR05开始,你很快就会知道如何调试传感器。然后你将使用系统定时器、中断和USART(串行通信)。

△好啦,接下来我们要学IIC了,别着急,先跟着视频学吧。这个东西需要你能看懂时序图,然后找个BH1750(对于初学者来说难度比较合适)或者OLED屏等等,把这个模块调好。这样你才算是学会了IIC。

(3)最后,是时候做一个小项目了(你可以选择任何一个):

①智能家居,要求:

使用ESP8266 WIFI模块或者GPRS或者有线网络连接物联网平台,反馈传感器信息(温湿度、光照度、人体感应。。。),实现阈值报警通知(到手机钉钉或者微信、onenet、阿里云等),通过网页或者APP完成对设备(灯的开关、窗帘的开关、红外设备开关控制等)

②无线遥控小车,要求:

需要分别开发相应的遥控器(可选NRF或者ESP8266)和小车控制板,两块开发板分别可以控制小车前进、后退、左转、右转、加速、减速、自动避障。(必须使用PWM)

(之后就去参加比赛或者做项目了,不需要把剩下的部分都学完,利用这段时间学习Linux,做项目。) (4)Linux驱动学习