不知道大家还记不记得自己小学时候自己的梦想?
有人想成为医生、有人想成为医生,有人想成为飞行员,而我想成为发明家。
可能真是我这种想法,也导致我的性格从小就比较内向,毕业出来以后也从事技术。
人生的上半场,我都在和技术打交道,而我从事的这门技术叫单片机开发。
单片机很早就已经有了,我第一次接触它的时候也感觉有种”老头”的感觉,也就是感觉过时了。
10年过去了,我才发现曾经自己的想法错的太离谱了,现在很多外行人看起来的高科技其实都是用单片机来开发的。
举几个例子,比如说:无人机、扫地机器人、包括很多图像和语音识别控制的产品。
当然,有的产品不完全是单片机,而是多种技术融合在一起形成的产品,这个在实际产品开发当中实在太常见了。
最近收了一些学员,有几个年纪都比较大了,接近40多岁,原本我以为他们要学出来找工作,我是不建议的,毕竟年纪大了没什么竞争优势。
不过他们跟我说自己是对这个很感兴趣,之前是做各行各业的,有做PLC,也有做机械的。
或许他们是经常接触到一些单片机开发的产品,觉得这个技术很好玩。
自己也自学过,自学最久的一个将近2年,但是还是没学会。
深入聊完以后,我才发现他们的学习路径多多少少有点问题,其中一个就是直接学的STM32。
因为他手上有一个产品是基于stm32这款单片机开发的,他比较感兴趣。
我分析了一下他的问题,总结了以下几点,并给出个人建议:
1.基础缺失比较严重
这也就是今天文章的主题,入门选择51还是STM32的问题,很多人说没必要学51,可以直接学STM32。
我个人建议还是先从51单片机开始学习,能比较系统地认识单片机。
51单片机的开发模式是基于寄存器开发,就是需要配置寄存器去把单片机的资源用起来,这个是非常重要的基础。
你系统用一遍以后,再去学习别的单片机,你会发现所有单片机开发模式都是大同小异,底层都是通过寄存器把单片机资源用起来。
但是有一些资源多的单片机,比如说STM32,,他们原厂一般会提供固件库,也就是他们原厂封装了配置寄存器的代码。
你直接调用他们提供的函数就可以把指定的单片机资源给用起来,就不用自己去配置寄存器了,也不用去关心每个寄存器的作用。
所以,STM32其实更偏向于帮助有一定经验的工程师快速开发产品用的,并不适合新手入门学习单片机。
如果你完全是零基础,去学习STM32的话,本身的知识体系就是”畸形”的。
这就会导致,你虽然能在开发板上把LED点亮,但是它是怎么点亮的,前后流程是什么一脸懵逼。
所以,我一直要求我们无际单片机编程的学员一定要从51开始学起,不要贪快。
这个就像我们学习编程语言一样的,你熟悉一门语言以后再去学习别的语言会事半功倍。
2.学习内容不成体系
很多自学者前期还没规划好比较清晰的学习路径就开始盲目学习。
这样学习效率是非常低的,比如说你以为单片机要去深入研究模电,而我告诉你其实根本不用,模电实际用的少,而且硬件设计一般是硬件工程师的工作。
模拟电路本身就是非常复杂的学科,不要说你刚入门,就是做了单片机开发5年的都未必能学会。
所以,即便你高学历,能学会,但是只仅限于理论层面,到实际产品你的知识发挥的作用很有限。
当你花了1,2个月时间去研究模电,研究完以后再回到单片机,发现还是很多电路看不懂,这是正常的现象,因为你没对症下药。
3.学习过程没人指导
这个自学者最煎熬的事情,我当初也是自学过来的,有时候一个很简单的问题没人指导。
别人说一下可能只要几分钟,而你去解决可能需要几个小时。
我也加了很多群问,到论坛去发帖求助,但是也不现实,毕竟不可能每次都有人会帮助你。
这个没有什么解决办法,如果你想学得快就只能花钱找人带。
不要什么都想着自学,等人到中年了你会发现,时间太宝贵了,花钱去买别人几年的经验才是最划算的!
最后来说下入门单片机有哪些好的教学视频?
我认为教程多未必是好事,10年前我自学快,除了自身执行力以外,还有就是教程少。
教程多了你反而不知道如何选择,每个教程定位也不同,有些是针对入门的,有些是针对有一定经验的。
如果你是入门的话,可以先看我们自己录制的那套单片机c语言编程。
在小破站找无际单片机编程就能看到。
包括单片机模块化编程的进阶我们也有配套系统的教程,这些都是开源的。
不花一分钱,如果对你有帮助,给我安排个三连就行。