如果你是电子类专业的学生,将来大概率要用单片机嵌入式来谋生

2022-04-11     大方老师单片机

原标题:如果你是电子类专业的学生,将来大概率要用单片机嵌入式来谋生

如果你是电子类专业的学生,将来大概率要用单片/嵌入式谋生

首先51单片机是值得作为入门学习的!原因有几点:

其一51是相关大学专业必学课程,其实是因为大部分的高校老师只51了;

其二51书籍多资料多,同第一条一样是因为一些历史原因;

其三51麻雀虽小五脏俱全,用来学习是不错的;同样AVR单片机或STM8等都可以用来入门,51还是太经典太主流了;

其四,单片机万变不离其宗,学51也就会用其他单片机了(其实这是一个经验的问题)。

很多答主都是在三、四点上讲了很多细节化。我下面也稍微写一点:

·其实不论用哪一款单片机,片内资源都是差不多的GPIO、定时Timer和中断、通信UART/IIC/SPIADC/DAC等等等,这些资源就算换了一个单片机也会非常眼熟。

·然后是外设,其实这一部分51无关了LEDLCD、数码管、各种传感器等等,这些资源当你51平台学习过之后,在其他地方使用也是一样的;

·最后单片机开发debug的能力,我觉得这和经验有点关系了,这里的经验不是浮在水面上那种调用一API的业务经验,而是深入理解单片机原理的经验。我以前51玩得贼溜,后来一接STM32,几乎总GPIO上犯错!STM32GPIO需要初始化和设定输出输出STC51不用)然后还有什么中断向量表啊Flash的读写(先解锁再擦除最后写入)啊什么的,51的时候可没接触过那么多!

因此,感觉自己51玩得差不多的时候,就没必要51上继续研究了,可以走STM32的道路。那既然最后都要STM,为什么我还是推51作为入门学习呢?因51单片机屏蔽了很多高级细节却也足够全面,正如我前面第三点:麻雀虽小五脏俱全。把麻雀研究透了再看其他鸟类不都是一个鸟样吗?只不过这只鸟嘴长那只鸟脚长嘛。

如果你只是业余爱好者,想做点东西自己玩

可能大多数同学的情况可能就是属于这一类。而凡事都有两面性的,我这里给的建议就是:51是完全没有问题的!甚至不C语言开发都可以了!

51/STM32,那用什么呢?两类平台:ArduinoRaspberry pi

Arduino只需要学习一点C语言就可以玩各种硬件,如果有编程基础那么上手就非常快了!对比新手使51点亮一LED灯可能要半天时间,Arduino可能只需要五分钟?为什么呢?一个原因Arduino平台把能封装的都封装好了!开发者只管调用相应的接口即可,而使51STM32的原IDE可能还需要查找半天资料。

然后是树莓派,树莓派已经不算是单片机开发了而应该归类Linux应用开发了。不限制C语言PythonJavaScriptLuaPHP等脚本语言都可以用。

那前面所说的C语言开发就是指在树莓派上开发吗?肯定不是了!对于各类微控制器已经有脚本语言开始进军了,比MircoPythonMircoPython就是可运行在单片机上Python3脚本语言,可以Python对单片机进行各种操作等等。当然还有特self-important任何可以使JavaScript来编写的应用,最终会JavaScript编写JavaScript也有类似的平台Espruino

如果是作为一Web工程师,能PythonJS进行单片机开发干嘛非要C语言呢?对吧?只是作为一种业余爱好平时玩玩而已,真的没有必要再去学51STM32单片机C语言开发MicroPythonEspruino都支STM32了。

但是!任何一个电子专业出身的人都应该能意识到!像这类微控制器脚本语言平台,本身肯定有很大的局限性!首先是性能问题,在单片机上能脚本语言肯定要有一个脚本解析器,这肯定是C语言编写的了,那C语言运行脚本解析器,脚本解析器运行用户代码,最后出来的效果肯定慢了很多!当然如果单片机性能足够可能看不出什么。然后就是接口问题。因为我们是用脚本来控制单片机,如果底层解析器没有把一些寄存器的配置引出来,我们就没法做一些事情,比如说如果底层解析器不提供休眠接口,我们就没法对单片机进行休眠,那就没法更低功耗运行了。最后,就是限定板子导致的成本问题,目前来看,所有的脚本语言肯定没法都支持全部微控制器,尤其是更低配置的微控制器,低端单片机有一个好处就是成本低廉:能STM32LED流水灯控制就没必要用树莓派,能51单片机就没必要STM32,能555时基电路就没必要51单片机了,能用分立元件就没必要用芯片!

那就应该抵触这类东西吗?说真的我内心是有点抵触的,我抵触不代表我拒绝了解,后来简单玩了这些东西,感觉开发真的不要太方便了!分分钟就能做出一个自己想要产品原型,然后屁颠屁颠地去展示给其他人看,收到许多崇拜的星星眼。可是!如果要继续深入开发甚至打算做出可用的产品,会感到非常力不从心。

所以,在我眼中这类东西Arduino及树莓派一样,都只是“玩具”而已。我的开发原则还是,能用原IDE的就坚决不用第三IDE,能C语言的就不上脚本语言。

当然了,上面这一节是“不51单片机直接STM32”这话题衍生出来的“单片机用脚本语言开发好不好”,其实都指向我想表达的一个主旨:浮于表面的学习是接触不到核心的东西的,接触不到核心知识而积累下来的那些经验,换一个环境就懵懵懂懂不知所云虽然都是使JavaScript语言,但还真觉得前端知识Espruino平台开发所需知识是完全一样的?

///插播一条:我自己在今年年初录制了一套还比较系统的入门单片机教程,想要的同学找我拿就行了免费的,私信我就可以~点我头像黑色字体加蚣重呺也能领取///

如果有一些同学目标是想做自平衡小车或者飞行器这样好玩的东西,或有类似情况的读者,那么我的建议就是:在有一定的单片机发基础之后,上宝购买相关的学习套件,至于这个单片机发基础,对于业余爱好者来说是51开始还是STM32开始,问题真的不大。

文章来源: https://twgreatdaily.com/zh-hans/547aa92d8a9cfc0d9cc217ec179db5af.html