大家好,我是麦鸽,最近网友的一个提问,非常贴近很多初学者。
问题是这样的。
单片机入门还能从51开始吗? 现在ARM核和RISC核那么便宜,资料那么丰富,是不是没有必要学51单片机了?泻药,当然可以。
这里简单说说我的看法。
虽然ARM核和RISC核越来越便宜了,相对来说硬件成本下降很多,并且配套的资料也很多了,看起来也是可以很快上手的。这里,对于新手来说,往往难住他们可能是这些;
- 开发环境的搭建;
- 代码中带有中文的标点符号,比如“ ;”
- 烧录程序到单片机上时,各种驱动没装对,导致烧录器或者串口无法识别,一脸懵 (´・_・`)
- 遇到一些硬件问题或者软件问题就会感觉无从下手;
这是大多数和我交流过的同学的遭遇,包括我自学的时候,也会有这样那样的弱智问题。解决之后才发现自己是真的愚蠢。
先说51单片机
架构相比ARM和RISC没有那么复杂,特别是IO是双向输出的,虽然功能简单,不像ARM的GPIO那样,首先要配置时钟,然后还要配置模式,输入输出,上拉下拉。七七八八配一堆,对于新手来说,这无疑增加了出错的概率。
同样都是点个灯,51单片机几个文件就够了,几行代码,所以它的优势就是简单。上手难度小。
不过ARM架构,拿STM32来说,就有寄存器开发,标准库,HAL库,LL库,这些开发方式。
-
使用寄存器开发,寄存器挺多的,要配置不少寄存器才能实现功能,对新手不太友好。
-
使用库函数开发,比如标准库,HAL库,LL库这些,那么一个工程模板一大堆C文件,还有一堆宏定义,还有封装了很多的结构体,指针的使用。需要一定C语言基础,如果这里基础没打好,可能调用库都调不明白,云里雾里的,对不起,再去好好学学C语言吧。
所以,用51单片机入门很不错 的,虽然与目前市面上主流的脱节了,但是作为教学和入门还是很不错的。就像当初微机原理,用的还是8086来做平台进行教学,这也是一款很老旧的硬件平台了。
最后
学习51单片机作为入门真的很不错,如果基础比较好的同学可以直接上STM32进行学习,学习资料也多,资源也比较丰富,因人而异。
对于新手来说,还是把项目先跑起来,建立正反馈,培养兴趣,这样才有继续学习下去的动力。
不然一上来就给自己上强度,难免会打击信心,以上是我的看法。