Arduino和STM32简单对比

如果你想从事应用开发,可以试试 Arduino 这样成熟的开发板,它们的封装性、稳定性更加好,几乎不用去关心底层硬件的细节。
如果你想从事的是嵌入式软件,建议从 51、STM32、rtos、Linux 的路线去学习。

Arduino特点

  • Arduino更倾向于创意,它弱化了具体的硬件的操作,它的函数和语法都非常简单,而且非常“傻瓜化”。
  • 大部分 Arduino 的主控是 AVR 单片机,Arduino 的优势还是代码封装性高,所需语句少,降低软件的开发难度。
  • Arduino 上手比较容易,只要懂一点点硬件和 C++ 就能开发。
  • Arduino 大多数功能都有做好了的库,所以使用起来很简单,但是对于稍微复杂点的功能可控性较差。

STM32特点

  • 对于有计算或控制要求的,STM32 是更好选择。STM32 如果买开发板的话就要从硬件底层学起,掌握它的各种细节。
  • STM32 更注重工程实际,事实上工厂中很多简单的仪器什么温控仪,什么普通的电机控制器,什么低档 PLC,还有民用中的一些玩具,游戏手柄、有线键盘鼠标等外设,高校食堂里刷卡的 pos 机等等其实用得很多。
  • STM32 主要是给专业开发人员做产品用的,需要一定的专业知识,但同时编写代码实现功能也相对复杂。比如串口输出一个简单的字符串,对于Arduino 可能从新建工程开始,10 行代码就能实现,但是如果使用 STM32 的开发工具比如 Keil,可能需要上百行代码甚至更多。

Arduino和STM32对比

Arduino 有很多个版本,特性也并不一致,如果拿 Arduino UNO R3 这个最普遍的来说的话,它的控制器是 AVR 138 单片机,性能上和 STM32 不在一个水平上,该款在某种程度上和宏晶的 STC12 系列差不多(仅在运算上)。
Arduino MEGA 2560 这款算是MCU版的Arduino中的老大了,接口丰富,应该和 STM32F1 系列不相上下,但是功耗挺大,芯片发热明显,而同款封装的 STM32F1ZET6 则仅有微热,环境温度低的时候甚至感觉不到有温度。
根据两者的不同特性我们可以按照不同应用来比较:
  • 在学习容易程度方面:Arduino 相对于 STM32 容易很多。
  • 要求的基本编程思想:Arduino 以面向对象的类 C++、类 Java 为主,它的语言基于 C 但是又有些四不像。而 STM32 则以正统的 C 语言为主要开发语言。
  • 学习后获得的知识:Arduino 弱于 STM32。因为 Arduino 封装了很多底层操作。除非自己尝试编写Arduino以及配套电路模块的库,否则还只是停留在基础的编程上。
  • 开源程度上:用 STM32 做出来的东西想开源就开源,不想开源可以什么都不公布。
  • 外围电路搭建难易程度:Arduino 远大于 STM32。
  • 可拓展性:Arduino 与 STM32 相当,Arduino 基本上把控制器的大部分引脚都印出来了。
  • 成本:假设做出具有相同功能的东西:Arduino 成本高于 STM32。  

Arduino 一般电子爱好者和 DIY 的选择,而 STM32 往往用于实际产品的研发制造。

现在 Arduino 系列也能支持 STM32 的芯片,通过先下载 Arduino 固件,后就能使用 Arduino 的开发环境进行编程了。

所以,根据自己项目类型和需求选择适合自己的才最重要。

来源:大鱼机器人(公众号)

相关文章:Arduino和ESP32简单对比


已发布

分类

来自

标签: