如何理解Arduino開發(fā)?Arduino到底是個什么東東?
==== 原本我以為他就是一個IDE ====
通俗來看Arduino是個IDE的開發(fā)環(huán)境,類似于 我們使用的MDK或者IAR開發(fā)環(huán)境。當(dāng)然如果只是這么看,還是有點淺顯。
==== 在我看來Arduino本質(zhì) ====
Arduino開發(fā)的本質(zhì),也是基于單片機的開發(fā),但是他封裝的更為厲害,也就導(dǎo)致了,開發(fā)更為方便。Arduino開發(fā)的方式,讓我們離硬件更遠(yuǎn)了,離軟件更近一步。
==== 我們一起經(jīng)歷過單片機開發(fā)的時代 ====
第【1】代:最初的單片機開發(fā)的樣子——擼寄存器(C51的時代)
第【2】代: 后來又出現(xiàn)了更為方便的開發(fā)方式,以及配置工具:擼庫函數(shù)(STM32為代表的時代)
第【3】代: 再到后來就是各種買不到芯片,沒辦法大家急于換平臺,那么庫函數(shù)的麻煩也暴露了,(舉個板栗)以前STM32的庫函數(shù)不能用來配置Microchip的芯片(當(dāng)然Microchip也不好買,想哭),現(xiàn)在庫被徹底做了一次封裝,變成了一個中間層的通用件,用來配置的API可能對大家都一樣,你換不換芯片,對軟件影響并不大,也就是可能你換其它平臺的硬件,實際要操作的軟件基本沒有變動,這也就是我理解的Arduino的主打天下。
==== Arduino的優(yōu)缺點 ====
優(yōu)缺點:直接學(xué)習(xí)Arduino也有壞處,他屏蔽了太多了的細(xì)節(jié),反而不利于剛接觸單片機的人員,系統(tǒng)的學(xué)習(xí)單片機,凡事有利有弊吧。但是用起來提升開發(fā)效率還是賊爽。
第一次接觸Arduino的你,可能會非常的不適應(yīng),例如Arduino開發(fā)的方式主打是個一個文件,讓你極度的不適應(yīng),尤其不適合大型工程的開發(fā),其實Arduino也可以分模塊進(jìn)行開發(fā),這個后面再聊。一般Arduino可以簡單到只有一個簡單的工程文件:
第一次新建一個工程文件,你會發(fā)現(xiàn)找不到main函數(shù):
這讓一直習(xí)慣單片機開發(fā)方式的你更加的難以適應(yīng),偷偷告訴你,其實他在這里,你也返現(xiàn)了,原來setup函數(shù)和loop函數(shù)只是main函數(shù)中創(chuàng)建的一個名為loopTask的任務(wù)的回調(diào)函數(shù):
客觀評價:Arduino并不是萬能的,至少現(xiàn)在不是,他所支持的芯片的型號也是有限,它的開發(fā)方便是得益于無數(shù)的廠商和開發(fā)者對其中間件的擴充,例如我們所使用的ESP32系列的開發(fā)板,都是由廠商做的封裝添加好的。