一、前言:
在讲嵌入式之前,我们先来了解一下什么是嵌入式。国内普遍认同的嵌入式系统定义是:“以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能可靠性,成本体积功耗等严格要求的专用计算机系统”。而嵌入式有哪些方向可走呢,当然你也可以交叉学习(如把嵌入式与机械学习、人工智能交叉学习)
二、首先嵌入式的大概方向有:
#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画板子啊)
三、好了回到正题:该如何学习嵌入式,现在分两种情况: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)