如何理解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系列的開發板,都是由廠商做的封裝添加好的。