电子产业一站式赋能平台

PCB联盟网

搜索
查看: 21|回复: 0
收起左侧

嵌入式软件开发有哪些方向?学习路线是什么?

[复制链接]
匿名  发表于 2021-11-2 13:50:00 |阅读模式
你点击蓝字关注,回复“入门资料”获取单片机入门到高级开挂教程
文 | 无际(微信:603311638)
个人原创 | 第 128 篇
全文约2285字,阅读大约需要 6分钟
大家好,我是无际。
希望,这篇文章能为迷茫无助的你明确方向。 很多人觉得学习嵌入式开发比高考还难,不知道怎么入门?要学哪些东西? 嵌入式开发涉及的知识,你确实一辈子都学不完。 但是,这不代表你需要花费很长的时间才能学会。 我相信大多数人学习的目的,都是先通过学习这个技能找份工作,然后慢慢深入。 如果只是要达到找工作这种程度,完全可以在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语言编程用起来还是有点差异。 我们这块也专门录制了一套教程,总结了我们这几年实际开发最常用到的一些语法,可以到B找无际单片机编程直接看,都是开源的,教程相关课件源码也可以找我来拿,微信603311638。


2. 基础电路这一步走弯路的小伙伴最多,再重申一遍,不用死磕模电,甚至都不用刻意去学。 学习电路最好的途径就2个,一是开发板,二是项目。 然后通过项目不断地积累电路,模电负反馈放大电路以后的知识点我在实际工作基本没用到过。 而且我们定位单片机软件开发的话,也不需要具备硬件设计能力,只需要看懂电路关键输入输出就行了。 简单来说就是单片机通过什么方式控制电路,通过什么接口去采集电路过来的数据就行了。 3. 51单片机我第一次接触到的单片机是STC89C52RC,也就是现在开发板最常用最经典的一款。 不管你通过哪一款去入手,51单片机我都建议必须学一下,如果你直接学STM32我也不拦你。 学习51单片机的目的是为了让更好容易地去理解单片机的资源到底是怎么用起来的,怎么通过程序去控制电路的。 相当于为你后续学习别的单片机铺路。 4. 51单片机项目学完前面3个基础知识以后,到这一步,先把你前面所学的知识变成实实在在的项目,可以是一些小项目,比如说寻迹小车之类的,可以到某宝找一些DIY套件自己写程序。 一般他们也有提供源码,只不过很多只是以实现功能为目的,与实际产品的代码有区别。 这里本来想给我们项目打个广告,想想还是算了,好不容易积攒点粉,待会跑光了,哈哈,随缘吧。
这一步非常重要,也容易被初学者忽略,这一步的目的是为了学习实现功能的思维,锻炼代码整合能力,这个能力比你会单片机更重要。 5. C语言高级用法C语言基本语法学完了,也通过项目落到实处了,就需要学习一下C语言的高级用法了,比如说指针、结构体。 这块也是为下一步学习STM32单片机做铺垫,STM32的库是面向对象的思维,如果不懂结构体和指针基本看不懂。 这块我们无际单片机编程也有原创的、系统的开源教程在B站。


6.  STM32单片机很多人学习STM32觉得很难,怎么跟51单片机的开发模式完全不一样,控制一个IO口都这么麻烦。 STM32的资源比51单片机多太多了,寄存器自然也多,为了缩短大家开发周期,所以早期ST推出了固件库。 直接调库就能很轻松把STM32的外设用起来,而不需要关心底层配置了什么寄存器。 STM32学习我认为是会调库把外设用起来就行了,不用研究这么深。 除非你以后的产品需要你用寄存器去开发,再针对性去研究。 也不用所有外设都学习,可以看我上面那个思维导图,我为大家总结了最常用的外设。 7. STM32项目如果你坚持到这个环节,那恭喜你,你已经成功入门了。 接下来的时间,全部放在做项目上面,再去学别的单片机已经没太大意义了,使用起来都是大同小异。 你现在缺的是功能实现的思路,以及代码实现的能力。 除了项目,没有更好的方法,到这一步如果有条件了,一定要舍得花钱投资自己。 找一个行业经验丰富的人带你,通过最短的时间去学习别人几年的经验是很划算的。 如果条件不允许或者不认可我说的,也可以去找一些开源的项目学习,只是自己摸索比较浪费时间。 还有就是到某宝找一些单片机的项目DIY套件,一般他们会有提供源码,可以跟着学习。 有2-3个项目经验以后就可以开始找工作了。
最后,祝大家学有所成!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


联系客服 关注微信 下载APP 返回顶部 返回列表