如何系统、科学地自学单片机?

大概是这两年,我开始觉得,学一门技能,是件很简单的事。

或许,你觉得我又在吹牛逼。

毕竟自己在初学单片机的时候,也是哼哧哼哧的,差点被模电搞死,指针也半天没绕过来…

不过,活到30多岁,也做了开发10几年了,认知和经验都有一定的提高,带不成大神,带入行还是小菜一碟的。

接下来,如果你按照我的方法去做,从零基础到找工作,快的话3-5个月,慢的话6个月。

前段时间,我们花了大概1周时间,零基础,学了立创eda,给新项目画了一个外壳。

虽然没专业做外壳做的这么好,个人觉得,效率还是挺高了。

 

当然,说这些,不是为了凡尔赛。

 

我更想表达的是另外两点:

1.用实际成果,验证我说学技能相对简单这件事。

 

2.学技能,一定要抓住核心,不要为了白嫖到上百G教程,沾沾自喜,大多数教程都没必要看。

 

我承认,这个标题,有些坑,比如系统,科学地….

 

我接下来跟你说的,都是自己从业10年实战出来的野路子,不系统,也不科学,但很快…..

 

如果你认为,嵌入式就是学数字电路、模拟电路、PCB、C语言、51单片机、STM32单片机、RTOS、Linux、ARM等等。

 

我在怎么学嵌入式单片机?学习路线是什么?也介绍过学习嵌入式单片机的方法。

 

大概率…得”死”在路上,连职业定位都不清晰,学个锤子。

 

没有目标的学习,都是耍流氓….

 

这时候,你可能跳起来说:我知道,学了就是为了找工作。

 

但你知不知道,哪怕你花上七七四十九天,含泪学完这些,可能还是找不到工作。

 

你只知道你要找工作,却忽略了,企业到底要什么样的人?

 

以前我客串过下面试官,有优先顺序的。

 

第一梯队:有丰富工作经验,正好做过跟我们公司类似产品的,这种上手最快,来了就能直接开始压榨干活。

 

第二梯队:有项目经验,最好懂我们公司产品,涉及到的技术、协议,这种培养成本低。

 

第三梯队:既没工作经验,也没项目经验,那看学历,学历高的,起码学习能力强。

 

现在最卷的,就是第三梯队,找工作纯碰运气,狼多肉少啊

 

如果从来没”再来一瓶”的运气,强烈建议别在第三梯队卷了,拼命往第二梯队挤就对了。

 

没人规定,必须要有工作经历,才有项目经验。

 

去年,我们无际单片机项目陪跑营有个铁子,就是因为懂lora,正好面试的公司在做这块,直接下offer!

 

有很多老铁加我问:零基础,要怎么学?

 

我回复就两句话:

“直接先买个51开发板玩一遍。”

“学完基础,不是铁公鸡的话,来找我们做项目”

 

从入门到入行的秘密,就这两句,后续一切动作,都围绕这两句执行,说白了就是按需学习

 

你可能想杠一下,这样学基础不扎实,半吊子,不系统什么的。

 

从事单片机开发越久,越发现这个领域知识的无穷无尽,如果真要钻这个牛角尖,大概你是没经历过几个月没收入的煎熬。

 

我认为先快速入行,工作后再慢慢提升,是最合适的。

 

现在开发板都卷的一批, c语言、51单片机、硬件基础都是一套教程搞定了。

 

硬件基础也不需要学到会设计的程度,没做过10几个项目别想了,不现实。

 

先学常用元器件原理和作用,再通过开发板和项目慢慢积累功能电路,比如按键、存储、显示、蜂鸣器、LED、串口、IIC、SPI之类的,就能满足很多产品需求了。

 

压根不需要单独去学魔法电路(模拟电路)这些,既复杂又不实用。

 

以上这些,快的话大概一个月学完,慢的话不要超过2个月。

 

学完51开发板,就可以基于51单片机去做一些小项目巩固c语言和代码整合能力了。

 

很多人觉得51很low,怕企业不认可,忽略做项目环节,就去学stm32了,这种是典型的行业认知问题。

 

我职业生涯中,有这么个经理,做了近10年的产品研发,都是用51内核的单片机。

 

虽然他只会51,但我觉得,他牛逼的不行,都TM用汇编写程序了,把一款单片机性能压榨到极致。

 

结果是,同行的成本没人能干得过他们,当然还需要有供应链的支持,比如物料渠道,生产等…

 

我相信,他现在出来找工作,香的不行,绝不会因为不懂stm32,年纪大,被淘汰啥的。

 

整个项目的原理、协议、接口、框架、可靠性的理解和设计,才是工程师的核心竞争力。

 

用51单片机做过1,2个项目以后,就可以去学stm32了。

 

我的理解,学stm32重点就是学库,库主要考验c语言功底。

 

其它的时钟树,总线,中断管理啥的,有个概念即可,哪怕前期看不懂,也不影响调库把外设用起来。

 

学STM32最好的方式,还是按需学习,就是最好有具体的项目,然后通过这个项目去学,这样最接地气,既能把单片机学了,又能积累项目经验。

 

stm32很多外设,实际产品都不常用。

 

把GPIO、串口、定时器、NVIC、DMA、SPI、IIC、ADC、Systick这些外设学了,基本能涵盖很多项目了。

 

这些外设,如果以会用为目标,大概2周就能学完了。

 

如果通过开发板学,按照提供的教程顺序学,虽然系统,但有个弊端,很多外设既复杂又不常用,耗时太长。

 

还有就是外设虽然会用了,但具体应用在哪里不知道。

 

比如IIC,能用来驱动OLED屏,IIC协议打通,对于项目来说,只是完成了10%的工作量,剩下的就是在OLED屏上做功能UI,这个才是大头。

 

这时候考验的,就不是你对单片机有多熟悉了,一点用没有,考验的是你的编程思维和代码水平,还有功能代码组织能力。

 

很多人说基础不打扎实,做项目会碰到很多问题。

 

这个思维,其实不对,没有落地实战,基础不可能学扎实的。

 

我更倾向的方式是,先学点基础,然后不断做项目,在做项目的过程中,缺什么补什么,项目做多了,更扎实。

 

学完stm32以后,别再学任何单片机了,也别学rtos和数据结构,把所有精力都去做项目。

 

这些东西,实际项目用到再去学,不然只是学了个寂寞。

 

比如我们无际单片机项目3,用链表这种数据结构去设计菜单功能的程序架构,做完这功能,你就知道,哦~,链表是做这种功能用的。

 

除此以外,链表在一些系统里面,还用于做队列的功能。

 

大概做3个项目左右,就去找工作。

 

项目尽量别找那种各种传感器拼接在一起的,练手可以,但是写到简历,企业大概率不认可。

 

原因很简单,硬件选型,一看就知道不是实际产品,还有程序这块,都是以实现功能为主,不会考虑后期维护,比如可扩展性和可移植性。

 

这些新手很难去分辨,至少市面上大多数都是这种。

 

回到文章开头,为什么我们能一周就能把外壳设计,就是用的这种方法。

 

直接拿项目来干,边干边学,缺啥补啥。

 

如果系统先去学eda这个工具,学完再去设计一个项目外壳,可能要花一个多月。

给TA买糖
共{{data.count}}人
人已赞赏
单片机自学指南

马上要去工作了,做嵌入式软件开发工程师,但是完全不会编程怎么办

2023-9-4 14:53:53

单片机自学指南

奉劝那些想学单片机的人

2024-1-5 19:40:27

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧