为什么很多人建议先学STM32而不是ESP32?
看到很多老铁喜欢玩esp32,对于新手来说,是先学STM32好还是先学ESP32好?
我个人建议,如果是学单片机,主流还是选STM32。
STM32是ARM Cortex-M核心的单片机,它就像是学习嵌入式的"标品",更具备通用性。
除了市场应用广以外,它的学习曲线也相对平缓,网上关于STM32的教程和资料多如牛毛。遇到问题一搜,这个坑准有人踩过。这对新手来说,简直就是福音啊!
再说开发环境,STM32可以用STM32CubeIDE,图形化配置界面,傻瓜式操作,生成初始代码,这种开发方式,对新手也很友好。
不过相对我们这种老工程师来说,还是固件库用的比较爽,没有这么多层代码的封装,执行效率也高。
不过呢,学STM32也不是全是顺风顺水的,中间还是要踩很多坑定。比如以前我学单片机,最头痛就是I2C和SPI这种时序,一出问题,都不知道是哪个时序没做到位。
不过,吃透这些协议的底层还是很有必要的,这样把同一套时序代码复制到另一个项目时,如果出现问题,不至于一头雾水。
再来说说ESP32,如果你想做一些物联网的项目,或者快速原型验证,这个芯片确实很顶。
Wi-Fi、蓝牙双模,功耗低,性能也很不错。乍一看,好像比STM32厉害多了。但是,这儿有个坑,很多新人都会踩。
ESP32的ESP-IDF开发环境,对新手来说,真的不太友好。代码结构复杂,底层很多东西都被封装了。
这样做呢,对提高开发效率是好事,但是对理解原理,那是相当不利。我就见过好些个例子,上来就学ESP32的,结果学得那叫一个痛苦,天天对着电脑嗷嗷叫。
不是说ESP32不好,而是它更适合有一定基础的人。你想啊,当你对单片机的基本概念都还不熟悉的时候,突然让你去搞Wi-Fi、蓝牙连接、MQTT协议,那不是难为人吗?
所以呢,我的建议是,先从STM32入手。把基本概念搞清楚了,再去碰ESP32。
这样一来,你再看ESP32的时候,就会觉得很多东西都是似曾相识。那感觉,就像是你先学会了自行车,再去骑摩托车,上手就快多了。
当然,话说回来,选STM32还是ESP32,也得看你的目标是啥。如果你就是冲着物联网去的,那么ESP32可能更适合你。
但是呢,我还是建议你先在STM32上练练手。为啥?因为STM32能让你更好地理解单片机的工作原理。等你基础打牢了,再转到ESP32,那学习效率绝对是杠杠的。
还有就是些项目,光是ESP32无法胜任,比如说我带粉丝们做的一些智能家居网关类的项目,如果要用ESP32,引脚这些都不够,不能作为主控使用,也只能作为一个透传模块这样子。
电子技术的更新速度,快得让人瞠目结舌。今天你刚学会用STM32,明天可能就冒出来一个更牛的新芯片。但是呢,也别慌。因为无论是STM32还是ESP32,它们教会你的不仅仅是怎么用这个芯片,更重要的是编程思维、问题解决能力,这些才是工程师核心的看家本领。
在这个领域,没有所谓的"最好"的选择,只有最适合产品的选择。
无论你选择了STM32还是ESP32,重要的是你要享受这个学习的过程。因为只有你真正喜欢上了这个过程,你才能在这个领域里走得更远。
想学单片机的小伙伴,又不知道怎么学的,可以看我下面这篇文章:
单片机怎么学?保姆级学习路线(附教程+工具)https://blog.csdn.net/2401_86645590/article/details/141437874
作者:无际单片机项目