大家好,最近有遇到刚入行的小伙伴问学习的时候先学ESP32还是先学STM32。
先说,
这两个东西主打的都不是一个方向,STM32是增强版的STC51 出来的产物,51的资源真的太少了,寄存器少,RAM、ROM少,要是开发多点功能代码都不能多写几行,所以就出来了STM32,在STM32流行之前,开发者们还用了一个上古产物AVR单片机来替代,但是后面发现不如直接玩STM32来得实际,所以各种电赛就开始用STM32来玩。
所以MCU老手玩STM32会觉得很顺手,软件背景的开发者用ESP32更容易上手。
开发方式上,ESP32主打物联网,基于ESP-IDF框架开发,底层协议栈(TCP/IP、WiFi、WebServer)都是现成的,开发者主要关注业务逻辑,不用太操心驱动层。
而STM32是通用型MCU,开发更灵活------可以用ST的HAL库快速搭建功能,也能用标准库精细控制,甚至直接操作寄存器来精准调校时序。
➵➵➵➵➵➵➵➵➵➵➵➵➵➵➵
功能侧重不同:
ESP32
适合智能家居这类场景,内置无线模块,配网、MQTT通信都是开箱即用,但外设接口和实时控制能力相对有限。
这些看起来也是一个单片机,但是如果和联网相关后,涉及的知识面就会多很多了,网络可以覆盖的业务场景也就多很多了。
STM32
擅长复杂设备控制,比如需要精密时序的传感器通信、多外设协同的场景。虽然部分型号带网络功能,但通常需要额外模块,更适合对实时性要求高的本地化应用。
比如我们做一个无人机、智能平衡车,不需要联网的产品,我们优先会想到用STM32。
➵➵➵➵➵➵➵➵➵➵➵➵➵➵➵
对于入门学习的话,我建议两个东西都买个开发板回来学,ESP32的SDK没那么复杂,玩起来也容易,能联网后可以捣鼓的东西也多。
STM32对于控制以及电子方面的知识要求更多,初学者可以做一个无人机和智能小车来玩玩。
