市场需求如此巨大,以至于很多人之前并不知道单片机是什么,但自从接触后就变得非常感兴趣。
每个男人心里都有一个“钢铁侠”梦想,希望自己能通过科技改变世界。
不过,要达到这个水平,我想不仅需要从小的训练,还需要不同人的天赋。
这几年,我见识过很多很有能力的大佬。 事实上,他们是从零开始的,他们也会遇到我们遇到的同样的问题。
不要被电影误导。 发烧可以成为天才,服用强力药丸可以改变基因。
想要成为大老板,就必须一步一步走,从基础做起,看3年、5年、10年的循环。 如果你能坚持下去,你一定会成为大老板。
到那个时候,你可能就达到了另一个层次,物质就不再是你的追求了。
单片机自学也是如此。 做技术最大的恐惧就是急功近利。 这样,你就永远只能浮于表面,而无法深入本质。
通常很多新手都会直接去学习stm32,因为stm32在很多产品中都会用到,他们天真地认为学会了stm32就可以做出这些产品。
结果你浪费了一年的时间,也学不会。 即使你在开发板上学会了stm32,你仍然做不出那些产品。
对于我们这些资深工程师来说,单片机只是一个工具。 stm32的定位是帮助工程师快速开发产品而不是让新手上手。
stm32资源丰富且非常复杂,因此原厂提供了固件库,方便工程师快速使用单片机资源,无需再去进行寄存器配置。
如果你从来没有研究过51单片机,你可能连配置寄存器都没有听说过。 虽然可以使用stm32外设,但是如果离开固件库或者改成hal库,就完全失去了开发能力。 这是典型的基础知识缺失。
51单片机则不同。 如果你想使用单片机的资源,对不起,你需要自己配置芯片的寄存器。
这时候就需要查看芯片手册中的寄存器说明,看看设置为1和设置为0时各个位置代表什么意思。
虽然你只是学习了微控制器,但实际上你学到了很多额外的知识,比如如何阅读数据手册。
这些是微控制器开发的基本技能。
1、自学单片机难吗?
我觉得一点也不难,因为我在这个行业已经10年了,哈哈。
对很多人来说太难了。 我们无极单片机编程最近有一个应届毕业生,自学了快2年了也学不会。
还有一个40多岁的学生,没有任何基础知识。 我们一对一帮助他评估基础知识,然后规划学习路线。 此后,他能够在一个月内独立开发出很多程序。
有什么不同?
我认为差异如下:
学习路径
我们的学习路径都是根据职业定位来规划的,不同的职业定位有不同的学习内容。
在规划的时候,我们会结合自己10年的行业经验,只学习工作中常用的知识,绝不把时间浪费在不需要的东西上。
很多自学者就是没有一个清晰的学习路径,因为他们甚至没有一个明确的定位。
比如很多人只知道嵌入式,却不知道嵌入式其实细分为很多方向,比如单片机开发、ARM+Linux开发、FPGA/DSP开发等。
不同的方向对应不同的职位,学习的内容也有很大不同。
如果你连这个都不懂,5年之内你也学不会。
学习技术不像学习其他东西。 无论你在错误的道路上多么艰难,你都会抓住关键点。
技术上走的弯路太多,稍有失误就可能是致命的错误。 比如,很明显,单片机开发不需要学习Linux,如果去学习,至少会浪费几个月的时间。
如果你每一步都犯这样的错误,5年不学就很正常了。
2. 学习过程无人指导
即使学习路径是正确的,但自学也一定会走弯路。
比如我们无极单片机编程有一个学生,他总是比其他学生学得慢一点。 我很好奇他是如何学习的。
后来深入交谈后,我发现他特别喜欢惹麻烦。 我们学习stm32的时候,一般都是基于固件库进行开发,不需要深入了解如何配置寄存器。
而且他坚持要研究,生怕自己研究不透,出现问题时不知道如何解决。
如果你这样学,学完你就老了。 我连stm32都没系统学过。
但是有一次有一个使用stm32单片机制作的新产品,所以我在网上买了一个开发板。 已经是9年前的事了。 当时开发板没有附带视频教程。
我为每个外设配置了使用例程,然后将这些例程复制到我的产品项目中,更改参数,然后进行测试。
例如改变IO口、改变定时器中断频率、改变ADC通道等。
就这样一步步测试了。
最终,产品建成了。 我仍然不知道如何使用stm32单片机的许多资源,但产品仍然稳定。
后来逐渐基于stm32做了更多的产品,对整个固件库也非常熟悉。 我什至可以通过固件库学习面向对象的编程思想和技术。
因此,我后来也得出结论,通过项目其实是学习stm32单片机最快的方法。
通过开发板,即使你已经使用了所有的外设,但你不知道这些外设可以用在哪里,给你一个项目时你仍然会感到困惑。
2、单片机编程教学如何选择?
市面上有很多单片机编程的培训,但根据我个人的经验,大部分都是无用的。
即学习后能达到的水平就是开发板水平。 这样一来,还不如花100多块钱买个开发板跟着视频学习,省下不少钱。
我认为首先要了解学生的基本情况。 我们无极单片机编程会对每个新生进行一次基础的评估。 评价内容也是我们总结多年来工作所必需的基础知识。
比如零基础知识的同学首先要学习C语言和硬件基础。
我们还开源了微控制器的 C 语言教程。 你可以从无极单片机编程获取,或者直接去小坡网站获取。 相对而言,我们的教程更注重实际开发。
学习了C语言和电路基础之后,接下来就可以了解单片机,直接通过项目来学习。
虽然学习可能不像开发板那样系统化,但是学员的目标非常明确,知道所学的知识实际运用到什么场景。 学习后,他们有项目经验,为找工作铺路。 一石多用。
多做几个产品你就基本熟悉单片机了。 即使您没有使用过某些资源,您也会知道如何使用它们。
这种以实际项目驱动的学习会更加可靠,也更加符合企业需求。