ESP32的优势
在谈论这个问题之前,我们首先得阐述一下ESP32相当于STM32的优点。ESP32具有双核240MHZ, ** 内置WiFi和蓝牙包括低功耗蓝牙 **
,而大部分STM32都没有内置无线需要依靠外设才能进行无线通讯,这是ESP32的主要优势。
得益于较大的Flash,因此ESP32大部分基于MicoPy或者Arduino
IDE开发,可以使用C++或者Python来编程。因此具有极其丰富的社区支持,适合新手和编程水平较低的开发者使用,并且AI编程在ESP32上可以得到很好的应用。
所以与其说ESP32是玩具,更确切的说它的开发门槛实在是有点低了,只要有着一点C/C++基础熟练的使用AI助手,就可以较好的玩转ESP32,非常适合当作一个拓展性极强的模块来使用。
STM32的优势
相较于ESP32,STM32有着一定的技术门槛,虽然大部分芯片是单核,但是其在传统嵌入式控制领域有着不可比拟的优势,同样的有着丰富的社区支持,但是需要有一定的能力移植驱动代码。
STM32的硬件外设例如PWM、ADC、DAC相较于ESP32强的太多太多了,ESP32的PWM到200+KHZ失真就较为严重,并且ADC外设性能也强于ESP32,而且STM不同系列的侧重点并不相同。
U系列专注于低功耗产品,W系列专注于无线通讯(蓝牙/Lora等),G系列有着强大的模拟外设,其ADC和DAC还有板载运放及比较器有着令人惊叹的性能。(这段时间还和指导老师推荐使用G4系列单片机)
F系列则为通用系列,在没有明确的应用场景下F系列更为通用。H系列为高性能,几乎每块H系列都支持屏幕的高刷新和Core的高频率来执行任务,配合实时操作系统可以得到很好的提升。
因此相比于ESP32,STM32有着更广阔的应用领域和强大的功能。
该如何选择
项目产品该如何选择ESP32还是STM32事实上应该看使用场景,ESP32更适合技术水平不够和需要无线通讯的场所,例如 ** 物联网IOT和智能设备领域
** ,这方面ESP32具有很大的优势,所以我通常是将ESP32当作一个拓展性更强的无线模块配合STM32使用。
但是其实在没有无线应用的场景中,以太网接口似乎更适合。
大部分STM32单片机会配备相应的以太网口接口。
(也就是我们学生不太方便使用以太网)
因此在传统嵌入式控制中,STM32依旧有着不可比拟的性能,但是同样意味着需要有一定的技术门槛。大家按需选择。