大学如何自学嵌入式开发?

无际单片机编程 无际单片机编程     2023-01-26     669

关键词:

我2011年就开始从事嵌入式软件开发。

很多人觉得学习嵌入式开发比高考还难,不知道怎么入门?要学哪些东西?

嵌入式开发涉及的知识,你确实一辈子都学不完。

但是,这不代表你需要花费很长的时间才能学会。

我相信大多数人学习的目的,都是先通过学习这个技能找份工作,然后慢慢深入。

如果只是要达到找工作这种程度,亲测只要学习方向正确+够努力,完全可以在3-4个月完成。

一上来就像吃透这个,吃透那个的专家思想,绝对还没入门就入土了。

在学习之前,最重要的不是找教程,方向和方法比教程更重要。

很多人以为嵌入式开发就是搞ARM,搞Linux。

实际上,嵌入式开发分很多方向。

主流的方向有:

1.单片机开发

2.Linx驱动/应用开发

3.FPGA,不了解不做讲解

这是两个是目前市场需求最大的,单片机开发和Linux驱动开发偏向硬件,Linux应用开发基本是软件。

前期一定要先根据个人情况确定好自己要从事的方向,不同的方向学习内容也不一样

很多人搞不清方向,以为嵌入式开发又要学单片机,又要学Linux,学了1年门都没入。

我做了单片机开发10年,对这个行业比较熟悉,就拿这个方向做详细讲解,技术不用学多,深耕一个就够了。

单片机开发应该是属于最好入门的,Linux驱动/应用开发相对难点,工资Linux也相对高点。

不过做得越久,我越发现单片机开发其实并不比Linux开发简单。

我反而觉得资源越丰富的,用起来反而更简单。

举个例子,很多做家用消费类产品的芯片都是选非常便宜的,内存也非常小,资源非常匮乏。

他们写程序都是用汇编,算着汇编指令去写的。

你可以用资源丰富的芯片做,然后用c把代码写的很健壮,但是成本绝对比别人高。

哪怕一颗芯片只贵1毛钱,如果一个月出货10万个,你就让企业少挣1万。

有些做嵌入式Linux开发的看不起做单片机开发的,觉得很简单,没什么技术难度。

等你做过研发负责人,你就明白任何一个产品,即便功能再简单,要做好都是没那么简单的。

下面,我来总结下,学习单片机开发正确的学习路径

整个学习路径我分为7步:

1.C语言基本语法

C语言基本语法学习大概需要1-2周时间,这种教程网上已经泛滥了,大多基于上位机的C语言,跟单片机C语言编程用起来还是有点差异。

我们这块也专门录制了一套教程,总结了我们这几年实际开发最常用到的一些语法,可以到小破站找无际单片机编程直接看。

2.基础电路

这一步走弯路的小伙伴最多,再重申一遍,不用死磕模电,甚至都不用去学。

学习电路最好的途径就2个,一是开发板,二是项目。

然后通过项目不断地积累电路,模电负反馈放大电路以后的知识点我在实际工作基本没用到过。

而且我们定位单片机软件开发的话,也不需要具备硬件设计能力,只需要看懂电路关键输入输出就行了。

简单来说就是单片机通过什么方式控制电路,通过什么接口去采集电路过来的数据就行了。

3.51单片机

我第一次接触到的单片机是STC89C52RC,也就是现在开发板最常用最经典的一款。

不管你通过哪一款去入手,51单片机我都建议必须学一下,如果你直接学STM32我也不拦你。

学习51单片机的目的是为了让更好容易地去理解单片机的资源到底是怎么用起来的,怎么通过程序去控制电路的。

相当于为你后续学习别的单片机铺路。

4.51单片机项目

学完前面3个基础知识以后,到这一步,先把你前面所学的知识变成实实在在的项目,可以是一些小项目,比如说寻迹小车之类的,可以到某宝找一些DIY套件自己写程序,也可以找无际单片机编程学习实际产品开发。

这一步非常重要,也容易被初学者忽略,这一步的目的是为了学习实现功能的思维,锻炼代码整合能力,这个能力比你会单片机更重要。

5.C语言高级用法

C语言基本语法学完了,也通过项目落到实处了,就需要学习一下C语言的高级用法了,比如说指针、结构体。

这块也是为下一步学习STM32单片机做铺垫,STM32的库是面向对象的思维,如果不懂结构体和指针基本看不懂。

这块我们无际单片机编程也有原创的、系统的开源教程在小破站。

这套教程是我2019年录这玩的,本来想靠它挣点钱,后来工作一忙没空搞,干脆开源出来。

不要以讲师的标准去要求我,毕竟当初没经验,而且是开源的。

但是课程内容个人认为还是非常有价值了,也是市面上学不到的,看过的评价也比较高。

6.STM32单片机

很多人学习STM32觉得很难,怎么跟51单片机的开发模式完全不一样,控制一个IO口都这么麻烦。

STM32的资源比51单片机多太多了,寄存器自然也多,为了缩短大家开发周期,所以早期ST推出了固件库。

直接调库就能很轻松把STM32的外设用起来,而不需要关心底层配置了什么寄存器。

STM32学习我认为是会调库把外设用起来就行了,不用研究这么深。

除非你以后的产品需要你用寄存器去开发,再针对性去研究。

也不用所有外设都学习,可以看我上面那个思维导图,我为大家总结了最常用的外设。

7.STM32项目

如果你坚持到这个环节,那恭喜你,你已经成功入门了。

接下来的时间,全部放在做项目上面,再去学别的单片机已经没太大意义了,使用起来都是大同小异。

你现在缺的是功能实现的思路,以及代码实现的能力

除了项目,没有更好的方法,到这一步如果有条件了,一定要舍得花钱投资自己。

找一个行业经验丰富的人带你,通过最短的时间去学习别人几年的精华是很划算的。

如果条件不允许或者不认可我说的,也可以去找一些开源的项目学习,只是自己摸索比较浪费时间。

还有就是到某宝找一些单片机的项目DIY套件,一般他们会有提供源码,可以跟着学习。

最后,祝大家学有所成!

如何通过自学成为一名优秀的android开发工程师?

...。尤其是Android程序员,基本上都是自学的,能在大学里接受正规系统的Android开发学习是很难的,很少有学校会专门教这个。(以上都是我的个人经验,不知道现在的大学教育是什么样子)以笔者自身为例&... 查看详情

plc开发没有前景想转行嵌入式,找个培训机构还是自学?(代码片段)

0.粉丝提问把粉丝的情况和问题总结起来,主要以下几点:这位粉丝19年毕业,25岁,专业是是自动化,之前从事plc开发,现在在自学单片机,想转行做Linux相关开发犹豫是自学还是报线下培训班?很... 查看详情

大学毕业所面临的一些困惑以及如何解决?

...我是在校大学生下学期面临实习马上就要就业想问下关于嵌入式行业的几个问题请行业人员如实回答指点迷津谢谢1.咱们嵌入式开发的职业发展路线一般是怎么样的?2.咱们的工作 查看详情

如何自学编程

我大学本科念的是电子工程专业,所以到那个时候为止,我唯一使用过的编程语言就是C/C++、Assembly、以及Matlab。后来一个偶然的机会我参加了一个“周末创业”的活动,并且开始渐渐对软件开发和计算机科学感兴趣,然后... 查看详情

reactnative自学--嵌入到原生应用

之前按照官网的步骤,实现的第一步的"HelloWorld"!对于每一个android的开发,我想没有一个愿意只是开发一些js开发的,要了解原生和js交互才是我们的目标。根据官网的操作,开始嵌入原生应用。具体操作对着官网操作应该没问题... 查看详情

新手入门应如何选择嵌入式学习开发板?开发板可以学会嵌入式开发嘛?

想自学单片机的兄弟,都先会通过各种途径了解评估一下单片机该如何学习?或通过网络,或通过同学,或通过同事朋友等。经过一番评估之后,最终下定了决心开始学习单片机,多掌握一个新技术,... 查看详情

如何通过自学成为一名优秀的android开发工程师?

...。尤其是Android程序员,基本上都是自学的,能在大学里接受正规系统的Android开发学习是很难的,很少有学校会专门教这个。(以上都是我的个人经验,不知道现在的大学教育是什么样子)以笔者自身为例&... 查看详情

4.5 没有自学,不是大学——《逆袭大学》连载

返回到【全文目录】4.5 没有自学,不是大学常有大学生向我询问如果想学些知识,哪里有教,谁教得好。作为学生,找到名师,找到在学习中可以依赖的力量,是一件非常重要、非常荣幸的事。在大学里&... 查看详情

如何自学java开发

如何自学Java开发?568赞同反对,不会显示你的姓名李艾米IT路上学习568 人赞同JavaWeb前端技术HTML入门视频课程1HTML简介2HTML基本结构【3HTML的BODY标签以及颜色的设定4HTML之br标签5HTML之p标签6HTML之pre标签.7HTML之center8HTML之引文标... 查看详情

万字长文分享,新手小白如何自学java(方法+步骤)

...会得到如下收获:学习Java的方法学习Java的具体步骤大学四年如何高质量度过如何把我大学时光自学编程对培训的正确认识大家存在的问题「为什么说自学编程很难?」因为编程,一直都是一件有门槛的事情,不... 查看详情

万字长文分享,新手小白如何自学java(方法+步骤)

...会得到如下收获:学习Java的方法学习Java的具体步骤大学四年如何高质量度过如何把我大学时光自学编程对培训的正确认识大家存在的问题「为什么说自学编程很难?」因为编程,一直都是一件有门槛的事情,不... 查看详情

经验分享大学四年自学java,我建议这样做

如何自学Java编程,今天我来谈谈自己的学习经验,全程干货,记得看完点赞,分享不易,​谢谢支持!其实关于自学编程,我在朋友圈和个人原创公众号庆哥Java分享过很多了,也帮助过很多人࿰... 查看详情

嵌入式里做linux内核开发有没有前途

参考技术A嵌入式里做linux内核开发有没有前途搜索“linux”,更可以获得近2000条记录。从这些职位上看,市场上需要的嵌入式人才必须具备C语言编程经验、嵌入式操作系统(嵌入式Linux)、具有内核裁剪经验、具有驱动程序开发经... 查看详情

大学四年,从小白到入职腾讯,我总结了这本自学手册!

大家好,我是帅地。从大学转专业到软件工程,再到校招入职腾讯后台开发,作为一个双非的本科生,能够在校招入职大厂,我觉得最重要的原因就是得益于我计算机基础+算法学的好。现在很多人急于求成... 查看详情

如何自学的一些疑问,草稿篇!

进入大学时期以来,很多时候的学习不是按照高中时候的应试教育来的在高中时 一个知识点会通过老师的讲解和反复的练习让我们去明白自己是否已经掌握而进入大学期间的学习通常是一种自学 ,而自学是一门学问很多... 查看详情

如何自学android编程

...些基础呢?  首先,你最好先熟悉一门编程语言,现在大学里面和计算机相关的专业甚至理工类专业一般都会开设C语言课程,只是很多同学在大学期间并没有好好学习,如果对它掌握的不太好或者很久没用了,建议先从将其好... 查看详情

自学有感

...sp;  《构建之法》,这本书来源于作者和国内多所大学进行软件工程共同合作教学经验的积累,书介绍了不少IT业正在使用的理论和技术,并且从从这些新思想、新技术中总结出对自己在未来的工作中有用的东西。本书主... 查看详情

如何将多个嵌入式集合中的数据获取到 ejs 中?

】如何将多个嵌入式集合中的数据获取到ejs中?【英文标题】:Howtogetthedatafrommultipleembbeddedcollectionsintoejs?【发布时间】:2021-07-1502:15:59【问题描述】:大家好,这个问题有点傻,但我是编程新手。所以我一直在为我的大学项目... 查看详情