最近总是不少新人问我:刚入行,到底先学ESP32还是STM32?
对此我就一句话:这两主打的不是一个方向,非要放在一起比,没意义!!!

先说STM32
STM32说白了就是增强版的51。51资源太少了,寄存器少,RAM、ROM都小,功能稍微多点代码都写不下。所以ST出了STM32,资源丰富,外设多,控制能力强。
在STM32流行之前,老玩家们还用过一个上古产物叫AVR单片机,后来发现不如直接上STM32来得实在。从那以后,各种电赛、工控项目,基本都是STM32的天下。
STM32是通用型MCU,开发很灵活。你想省事,可以用ST的HAL库快速搭功能;你想精细控制,可以用标准库;你要是追求极致,直接操作寄存器调时序也行。这种从底层到高层的全栈掌控力,是STM32最大的底牌。
再说ESP32
ESP32主打的是物联网。它的核心竞争力就两个字:联网。
基于ESP-IDF框架开发,TCP/IP协议栈、WiFi、蓝牙、WebServer这些东西都是现成的。开发者上来就直接写业务逻辑,不用操心驱动层怎么折腾。
这玩意儿适合智能家居这类场景,配网、MQTT通信开箱即用。但它的短板也很明显:外设接口和实时控制能力相对有限。做复杂设备控制,比如需要精密时序的传感器通信、多外设协同的场景,ESP32就不太够用。
怎么选?看你要干什么
做个无人机、智能平衡车、电机驱动器这类不需要联网的产品,优先选STM32。它擅长精密控制和实时响应,这是它的老本行。
做个智能插座、传感器节点、家庭网关这类需要联网的产品,ESP32更合适。无线功能内置,开发效率高,不用额外加模块。
入门建议
如果你刚入门,我的建议是两个都买块开发板回来玩玩。
ESP32的SDK没那么复杂,上手快,能联网后能捣鼓的东西也多,容易建立成就感。
STM32对电子和控制方面的知识要求更高,但这是硬功夫,躲不掉的。可以做个无人机或者智能小车,把这些基本功练扎实。
两个都摸一遍,你自然就知道什么场景该用什么家伙了。
本文玩点嵌入式原创文章,转载请注明来源!

扫码关注















































