如果你就是要搞单片机,学STM32。
如果你要搞机器人、物联网、机器视觉、自动驾驶,就要学Arduino。
搞单片机,除了STM32之外,重点在于画好原理图和PCB。刚好我有一些资料,是我根据网友给的问题精心整理了一份「stm32的资料从专业入门到高级教程」,
点个关注在评论区回复“888”之后私信回复“888”,全部无偿共享给大家!!!
搞机器人什么的,除了Arduino之外,还有很多东西要学。
单纯搞单片机,不可能拿高薪,搞一辈子也不可能高薪,但搞Arduino却可以。
一是因为Arduino代码可以跨平台。能用相同的代码,驱动不同厂家、不同型号的单片机。而且除了驱动单片机,还能驱动树莓派的GPIO接口。这样就可以在一个组合设备的不同节点,通过不同的硬件选型,平衡性能与功耗。
二是因为STM32的库是基于C的,而Arduino是基于C++的。尽管Arduino的上手门槛比STM32低,但天花板比STM32高多了。
每个方向详细解释起来,都很复杂,涉及的知识都很多。因为我们要做的,是STM32天花板以上的东西。
就拿机器人举例子吧。。
目前最常见的机器人硬件方案,就是用一个Linux开发板跑ROS作为主控,再用Arduino驱动ESP329,跑Micro ROS作为节点。
主控方面,入门级的是用树莓派、香橙派什么的。专业一点通常是用瑞芯微RK系列一,或恩智浦l.MX系列开发板。
ESP32的优点,在于它是双核单片机。一个8位核心负责监听指令,一个32位核心负责执行,并且预装了FreeRTOSQ,可以调度两个核心同时工作,真正实现并行,以保证全双工通信Q状态下不会出现阻塞。而它的另一个优点在于,完全面相开源社区一。因此,它才能在短短几年里建立出庞大的生态,与全球最新的、最有潜力的、最牛逼的技术保持同步。
而STM32是单核芯片。由于只有一个核心,就算上了RTOS也不能并行,反而增加负担。一旦访问密度高于承载的迸发,就会丢响应。