esp32和stm32哪個好
對于國內的大學生或者單片機從業者來說,STM32應該是比較熟悉的一個系列的單片機,而ESP32相對陌生一些。但是從名字看,兩者應該都是32位單片機。那么兩者之間到底有什么關聯,或者性能哪個好一些,哪個差一些呢?
今天,做為愛思考的單片機愛好者,簡單的分析一下。
首先說STM32,這個大家應該是比較熟悉了。意法半導體在2007年6月11日發布了全球首款STM32產品,也就是F1系列,基于ARM-CORTEX內核。在其后的幾年,陸陸續續發布了不同定位、不同方向的多款產品。有面向低功耗的L系列,有高性能的F2和F4系列,有低價的F0系列,有高速的F7系列等等。我們可以通過下面的這個圖,有一個大致的了解:
所以,你會發現,STM32不是一個具體的單片機型號,而是一個或者多個系列的,基于ARM內核的單片機家族的統稱。
那么,ESP32是什么?
它是樂鑫公司推出的一款采用兩個哈佛結構 Xtensa LX6 CPU 構成的擁有雙核系統的芯片。所有的片上存儲器、片外存儲器以及外設都分布在兩個 CPU 的數據總線和/或指令總線上。
相比于STM32的一個大家族,ESP32雖然也代表一個系列,但目前來說,這個系列的成員還是比較少的,我們看下:
那么,兩者之間該如何對比?先看ESP32的硬件,我直接放官方數據手冊里的配置:
?
功能框圖如下:
模塊(非芯片)的引腳分布如下:
你會發現,ESP32這個模塊的IO并不多,估計也就30個左右(芯片有34個,但是模塊中外接FLASH用掉了一些)。但是你會發現它有幾個特點:
1、集成了非常多的外設接口,SPI、IIC、IIS、AD、DA、PWM、IR、UART、CAN等等。IO數量有限,所以基本上每個IO都有多個功能。
2、片內flash和ram很大,flash有448KB,ram有520KB。而模塊上直接掛了一個4MB的flash。大的不像話!
3、速度快!雖然外接晶體的頻率只有40MHZ,但通過內部主頻可以支持80MHZ、160MHZ、240MHZ,運算能力高達600MIPS。
4、有wifi和藍牙!當前兩者不能同時使用。
那么,它如何跟STM32對比?或者說,我們用STM32的哪一款來和ESP32進行對比呢?
這里,我關注的因素是價格!也就是說,選擇和ESP32模塊價格接近的STM32芯片來對比!
為什么選ESP32模塊而不是芯片?因為國內的廠家安信可對樂鑫公司的芯片做了一個比較成熟的模塊封裝,而國內工程師更熟悉的都是模塊。
ESP32-S的模塊在安信可淘寶店的售價是18.9元(注意,模塊形式的ESP32有一片外掛的FLASH,大小是4MB),如下:
所以,這里我們找一個STM32系列里,價格在20元左右的芯片。這里,我選了STM32F407VET6,它在立創商城的價格是500片+的時候,22元/片。關于該芯片的配置,我直接放個圖,大家體驗一下(ps:這是一個100管腳的芯片)。
對比這兩者,你會發現STM32F407有以下幾個特點:
1、GPIO非常多,82個,UART、IIC、SPI、PWM、AD、DA等功能也很多,但不會出現ESP32那種GPIO不夠用的情況。
2、主頻168MHZ,比ESP32的240HMZ低了一些。運算能力210DMIPS,也低了一些。
3、flash和ram都相對小一些。
4、有線網口,不能無線上網。
經過對比,你會發現兩者基本是有各自不同的定位。ESP32偏向體積小巧、速度超快、功能強大,通過wifi接入網絡,專門為物聯網而生;而STM32偏向管腳豐富、功能全面,雖然沒有wifi和藍牙,速度也沒有ESP32快,但是可以通過網口接入網絡,可以控制更多的外設,為消費電子和工業控制而生。
所以,兩者的定位并不相同,做為工程師的你,一定要根據自己的項目需求來進行芯片的選型。
ESP32對比ESP8266
在你的項目中使用ESP32或ESP8266嗎?ESP32和ESP8266有什么區別?在本文中,我們將通過比較ESP32和ESP8266來回答這些問題,并涵蓋每個板的優缺點。
ESP32和ESP8266是性價比非常高的Wi-Fi模塊,非常適合物聯網(IoT)領域的DIY項目。
兩款芯片都屬于32位處理器。ESP32是雙核160MHz至240MHz CPU,而ESP8266是單核處理器,運行頻率為80MHz。
這些WiFi模塊都帶有GPIO,支持SPI,I2C,UART等各種協議。最好的部分是它們帶有無線網絡,這使得它們與Arduino等其他微控制器區別開來。這意味著你可以通過Wi-Fi或藍牙(ESP32)以極低的價格輕松地遠程控制和監控設備。
規格:ESP32 vs ESP8266
該ESP32是ESP8266繼任者。它增加了額外的CPU內核,更快的Wi-Fi,更多的GPIO,并支持藍牙4.2和藍牙低功耗。此外,ESP32配有觸摸感應針腳,可用于喚醒ESP32深度睡眠,內置霍爾效應傳感器和內置溫度傳感器。
兩塊板都非常便宜,但ESP32的成本略高。雖然ESP32的售價大約在6美元到12美元之間,但ESP8266的售價卻在4美元到6美元之間(但這取決于你獲得它們的位置)。
ESP32上有更多GPIO
該ESP32有更多的GPIO比ESP8266,你可以決定哪些引腳UART,I2C,SPI -你只需要設置的代碼。這是可能的,因為ESP32芯片的多路復用功能允許你為同一個引腳分配多個功能。
如果你沒有在代碼上設置它們,它們將位于默認定義的引腳上,如下圖所示(這是ESP32 DEVKIT V1 DOIT板的示例 - 引腳位置可能因制造商而異)。
PWM,ADC等
你可以在任何GPIO中設置PWM信號,并在代碼上設置可配置的頻率和占空比。
對于模擬引腳,這些是靜態的,但ESP32支持18個通道(模擬使能引腳)上的測量,而ESP8266只有一個10位ADC引腳。ESP32還支持兩個8位DAC通道。
此外,ESP32包含10個電容感應GPIO,可檢測觸摸并可用于觸發事件,或喚醒ESP32深度睡眠。
Arduino IDE - ESP32 vs ESP8266
ESP32和ESP8266板的編程方法有很多種。目前,可以使用Arduino IDE編程環境對兩個板進行編程。
這是一件好事,特別適合那些習慣Arduino編程并熟悉Arduino編程語言的人。
使用Arduino IDE開始使用ESP32或ESP8266并讓你的第一個項目運行非常簡單。網上有非常多的指南操作:比如在Arduino IDE中安裝ESP32板(Windows說明);在Arduino IDE中安裝ESP32板(Mac和Linux說明書);如何在Arduino IDE中安裝ESP8266板等。
雖然你可以使用Arduino IDE對兩個板進行編程,但它們可能與相同的庫和命令不兼容。有些庫只與其中一個板兼容。這意味著大多數時候你的ESP8266代碼與ESP32不兼容。但是,通常你只需要進行一些修改。
MicroPython Firwmare - ESP32 vs ESP8266
另一種對ESP32和ESP8266板進行編程的流行方法是使用MicroPython固件。
MicroPython是針對微控制器和嵌入式系統的Python 3的重新實現。MicroPython與常規Python非常相似。因此,如果你已經知道如何使用Python編程,那么你也知道如何在MicroPython中編程。
在MicroPython中,大多數Python腳本都與兩個板兼容(與使用Arduino IDE時不同)。這意味著大多數時候你可以為ESP32和ESP8266使用相同的腳本。
所以,此時你應該問: 我應該買ESP8266還是ESP32?
這真的取決于你想做什么。兩塊板都有使用的價值,兩者都有利有弊。
ESP8266比ESP32便宜。雖然它沒有那么多的功能,但對大多數簡單的DIY物聯網項目來說效果都不錯。此外,由于它“較舊”,因此在軟件方面受到更多支持,你可能會更容易找到幫助。但是,它在GPIO映射方面有一些限制,它可能沒有足夠的引腳用于你打算執行的操作。如果是這種情況,你應該使用ESP32。
ESP32比ESP8266 功能更強大,包含更多具有多種功能的GPIO,更快的Wi-Fi,并且還支持藍牙。很多人認為ESP32比ESP8266更難處理,因為它更復雜。在我們看來,ESP32編程與ESP8266一樣容易,特別是如果你打算用Arduino語言或MicroPython編程它。
另一方面,ESP32也有一些缺點。首先,它比ESP8266貴。因此,如果你正在制作一個簡單的物聯網項目,那么ESP8266可能會以更低的價格成功。此外,由于它比ESP8266更新,并非所有軟件都是為了充分利用ESP32功能而開發的,因此支持更少,錯誤更多。但從長遠來看,這些問題將得到解決,兩個開發板都將有各自應用的空間。
小編推薦閱讀:
評論
查看更多