arduino是什么?单片机又是什么?二者间又有什么联系?

前一阵子介绍了很多跟arduino相关的小例子,也经常会在某乎,某度上看到很多初学者不知道arduino到底是个什么,同时也不清楚它跟单片机有什么联系。

这是我们通常看到的arduino板子

arduino uno开发板

arduino nano开发板

ARDUINO LEONARDO开发板

ARDUINO DUE开发板

国内广为流传同时比较实惠的arduino开发板

arduino uno开发板

MEGA2560 arduino开发板

再来看下我做的一个块arduino板

自己画的arduino uno板

他们可以共同使用的开发环境

arduino开发环境


我们先来看下常用的单片机开发方式和基于arduino平台的开发方式


普通单片机开发方式和arduino开发方式

我们平时开发单片机工程每种单片机基本上使用的编译器不尽相同,可能很多人会问,我们平时用的软件不就只有keil么,还有其他的么?

那是因为我们使用的单片机种类比较少的缘故,除了keil还有很多其他单片机平台使用的开发软件


形形色色的开发环境
形形色色的下载器

看到上面这一堆东西,你对开发单片机还有兴趣么?
这还只是其中一部分,每个开发环境使用方式不同,每种单片机的寄存器和库函数操作又不一样,命名也还不太一样,如果说你想从一款单片机切换到另外一块单片机上,熟练工程师没有个把月都摸不透,更别说初学者了,估计从开始学习就放弃了/(ㄒoㄒ)/~~

这个时候,有一个学校的老师也同样为他们的学生学习单片机而苦恼,每次学生为了一个简单的制作就需要花费大量的时间去学习单片机,而他们当中绝大部分都是些音乐,艺术和非电子专业的学生,这样严重阻碍他们的制作。然后老师们就想了一个简单的办法,在MEG328单片机上开发了一个引导程序,然后把底层的驱动都写好,开发者只需调用接口函数就好了,这是最初的arduino开发方式,随着越来越多的开源爱好者加入,这个arduino平台支持的芯片越来越多(ESP32,ESP8266,STM32, Intel等),他们都使用下面这种统一的开发方式,大家基本不用关心寄存器是什么,单片机的内部复杂结构,中断等等,就像开发windows程序一样开发玩转单片机。

arduino开发方式

所以说,大家要问arduino是什么?那么我总结过来它就是一个标准的单片机开发生态环境,原则上任何单片机都可以按照arduino生态的标准开发一个串口下载引导程序,然后将底层驱动进行封装,大家就可以使用arduino的方式开发项目了。

比如像51单片机封装成arduino的这种方式:

推荐阅读更多精彩内容