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