Arduino和STM32性能對(duì)比究竟誰更厲害呢?很多電子愛好者面對(duì)Arduino和STM32時(shí)都會(huì)有個(gè)兩難的決定,不知道如何選擇使用。Arduino一直處在火熱狀態(tài),但是STM32接口多性能強(qiáng),速度也較快?
Arduino和STM32各自的特點(diǎn)
Arduino:
Arduino更傾向于創(chuàng)意,它弱化了具體的硬件的操作,它的函數(shù)和語法都非常簡單,而且非?!吧倒匣?。
大部分Arduino的主控是AVR單片機(jī),Arduino的優(yōu)勢(shì)還是代碼封裝性高,所需語句少,降低軟件的開發(fā)難度。
Arduino上手比較容易,只要懂一點(diǎn)點(diǎn)硬件和C++就能開發(fā)。
Arduino大多數(shù)功能都有做好了的庫,所以使用起來很簡單,但是對(duì)于稍微復(fù)雜點(diǎn)的功能可控性較差。
STM32:
對(duì)于有計(jì)算或控制要求的,STM32是更好選擇。STM32如果買開發(fā)板的話就要從硬件底層學(xué)起,掌握它的各種細(xì)節(jié)。
STM32更注重工程實(shí)際,事實(shí)上工廠中很多簡單的儀器什么溫控儀,什么普通的電機(jī)控制器,什么低檔PLC,還有民用中的一些玩具,游戲手柄、有線鍵盤鼠標(biāo)等外設(shè),高校食堂里刷卡的pos機(jī)等等其實(shí)用得很多。
STM32主要是給專業(yè)開發(fā)人員做產(chǎn)品用的,需要一定的專業(yè)知識(shí),但同時(shí)編寫代碼實(shí)現(xiàn)功能也相對(duì)復(fù)雜。比如串口輸出一個(gè)簡單的字符串,對(duì)于Arduino可能從新建工程開始,10行代碼就能實(shí)現(xiàn),但是如果使用STM32的開發(fā)工具比如Keil,可能需要上百行代碼甚至更多。
Arduino和STM32對(duì)比
Arduino有很多個(gè)版本,特性也并不一致,如果拿Arduino UNO R3這個(gè)最普遍的來說的話,它的控制器是AVR 138單片機(jī),性能上和STM32不在一個(gè)水平上,該款在某種程度上和宏晶的STC12系列差不多(僅在運(yùn)算上),Arduino MEGA 2560 這款算是MCU版的Arduino中的老大了,接口豐富,應(yīng)該和STM32F1系列不相上下,但是功耗挺大,芯片發(fā)熱明顯,而同款封裝的STM32F1ZET6則僅有微熱,環(huán)境溫度低的時(shí)候甚至感覺不到有溫度。
根據(jù)兩者的不同特性我們可以按照不同應(yīng)用來比較:
在學(xué)習(xí)容易程度方面:Arduino相對(duì)于STM32容易很多。
要求的基本編程思想:Arduino:面向?qū)ο蟮念怌++、類Java為主,它的語言基于C但是又有些四不像。而STM32則以正統(tǒng)的C語言為主要開發(fā)語言。
學(xué)習(xí)后獲得的知識(shí):Arduino弱于STM32。
因?yàn)锳rduino封裝了很多底層操作。除非自己嘗試編寫Arduino以及配套電路模塊的庫,否則還只是停留在基礎(chǔ)的編程上。
開源程度上:用STM32做出來的東西想開源就開源,不想開源可以什么都不公布。
外圍電路搭建難易程度:Arduino遠(yuǎn)大于STM32。
可拓展性:Arduino與STM32相當(dāng),Arduino基本上把控制器的大部分引腳都印出來了。
成本,假設(shè)做出具有相同功能的東西:Arduino成本高于STM32。
總結(jié)一下
如果還不知道怎么選擇,這里給出選擇建議:
如果你是對(duì)編程語言了解不深的大學(xué)層次以下的普通學(xué)生,建議上手Arduino
如果C功底薄弱上來就搞STM32你會(huì)很快有放棄的念頭
如果只是為了就業(yè)而學(xué)習(xí),果斷STM32類單片機(jī)
如果只是為了好玩而學(xué)習(xí),本身非電子類專業(yè),沒有信心,建議Arduino
如果編程功底好,建議STM32。搞定之后你看看Arduino開源社區(qū)做的東西,用STM32輕輕松松搞定
當(dāng)然如果有能力,兩者都接觸接觸,一般地一周不到Arduino的基本特性你就掌握了,以后有需要的話,可以很自如地移植Arduino代碼到STM32等MCU平臺(tái)上。
其實(shí)這兩者其實(shí)針對(duì)的方向略有不同,Arduino一般電子愛好者和DIY的選擇,而STM32往往用于實(shí)際產(chǎn)品的研發(fā)制造。但是現(xiàn)在Arduino系列也能支持STM32的芯片,通過先下載Arduino固件,后就能使用Arduino的開發(fā)環(huán)境進(jìn)行編程了。根據(jù)自己項(xiàng)目類型和需求選擇適合自己的才最重要。
責(zé)任編輯:haq
-
單片機(jī)
+關(guān)注
關(guān)注
6039文章
44573瀏覽量
636294 -
STM32
+關(guān)注
關(guān)注
2270文章
10906瀏覽量
356518 -
Arduino
+關(guān)注
關(guān)注
188文章
6471瀏覽量
187303
原文標(biāo)題:用STM32該鄙視Arduino嗎?
文章出處:【微信號(hào):c-stm32,微信公眾號(hào):STM32嵌入式開發(fā)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論