如何理解Arduino开发?Arduino到底是个什么东东?
==== 原本我以为他就是一个IDE ====
通俗来看Arduino是个IDE的开发环境,类似于 我们使用的MDK或者IAR开发环境。当然如果只是这么看,还是有点浅显。
==== 在我看来Arduino本质 ====
Arduino开发的本质,也是基于单片机的开发,但是他封装的更为厉害,也就导致了,开发更为方便。Arduino开发的方式,让我们离硬件更远了,离软件更近一步。
==== 我们一起经历过单片机开发的时代 ====
第【1】代:最初的单片机开发的样子——撸寄存器(C51的时代)
第【2】代: 后来又出现了更为方便的开发方式,以及配置工具:撸库函数(STM32为代表的时代)
第【3】代: 再到后来就是各种买不到芯片,没办法大家急于换平台,那么库函数的麻烦也暴露了,(举个板栗)以前STM32的库函数不能用来配置Microchip的芯片(当然Microchip也不好买,想哭),现在库被彻底做了一次封装,变成了一个中间层的通用件,用来配置的API可能对大家都一样,你换不换芯片,对软件影响并不大,也就是可能你换其它平台的硬件,实际要操作的软件基本没有变动,这也就是我理解的Arduino的主打天下。
==== Arduino的优缺点 ====
优缺点:直接学习Arduino也有坏处,他屏蔽了太多了的细节,反而不利于刚接触单片机的人员,系统的学习单片机,凡事有利有弊吧。但是用起来提升开发效率还是贼爽。
第一次接触Arduino的你,可能会非常的不适应,例如Arduino开发的方式主打是个一个文件,让你极度的不适应,尤其不适合大型工程的开发,其实Arduino也可以分模块进行开发,这个后面再聊。一般Arduino可以简单到只有一个简单的工程文件:
第一次新建一个工程文件,你会发现找不到main函数:
这让一直习惯单片机开发方式的你更加的难以适应,偷偷告诉你,其实他在这里,你也返现了,原来setup函数和loop函数只是main函数中创建的一个名为loopTask的任务的回调函数:
客观评价:Arduino并不是万能的,至少现在不是,他所支持的芯片的型号也是有限,它的开发方便是得益于无数的厂商和开发者对其中间件的扩充,例如我们所使用的ESP32系列的开发板,都是由厂商做的封装添加好的。