arduino和stm32哪个更好学?


 

信很多电子爱好者面对arduinostm32都会有个难题,那就是不知道如何选择使用?arduino一直处在火热状态,但是STM32接口多性能强,速度也较快?为什么大家有时候还是喜欢arduino做一些DIY和各种小项目?arduino和stm32性能对比究竟谁更厉害呢?我们一起来讨论一下。

比较两者之前首先我们来了解下arduino和stm32的特点:

Arduino:

Arduino UNO-DFRobot商城

1. Arduino更倾向于创意,它弱化了具体的硬件的操作,它的函数和语法都非常简单,而且非常“傻瓜”;

2.大部分Arduino的主控是AVR单片机,Arduino的优势还是代码封装性高,所需语句少,降低软件的开发难度;

3.Arduino上手比较容易,只要懂一点点硬件和C++就能开发。

4.Arduino大多数功能都有做好了的库,所以使用起来很简单,但是对于稍微复杂点的功能可控性较差。

STM32:

STM32F103-DFRobot

1.对于有计算或控制要求的,STM32是更好选择;STM32如果买开发板的话就要从硬件底层学起,掌握它的各种细节。

2.STM32更注重工程实际,事实上工厂中很多简单的仪器什么温控仪,什么普通的电机控制器,什么低档PLC,还有民用中的一些玩具,游戏手柄、有线键盘鼠标等外设,高校食堂里刷卡的pos机等等其实用得很多。

3.STM32主要是给专业开发人员做产品用的,需要一定的专业知识,但同时编写代码实现功能也相对复杂。比如串口输出一个简单的字符串,对于Arduino可能从新建工程开始,10行代码就能实现,但是如果使用STM32的开发工具比如Keil,可能需要上行代码甚至更多。

Arduino有很多个版本,特性也并不一致,如果拿Arduino UNO R3这个最普遍的来说的话,它的控制器是AVR 138单片机,性能上和STM32不在一个水平上,该款在某种程度上和宏晶的STC12系列差不多(仅在运算上),Arduino MEGA 2560 这款算是MCU版的Arduino中的老大了,接口丰富,应该和STM32F1系列不相上下,但是功耗挺大,芯片发热明显,而同款封装的STM32F1ZET6则仅有微热,环境温度低的时候甚至感觉不到有温度。

根据两者的不同特性我们可以按照不同应用来比较:

在学习容易程度上:Arduino>STM32类

要求的基本编程思想:Arduino:面向对象的类C++、类Java为主,它的语言基于C但是又有些四不像;STM32则以使用结构体的C为主

学习后获得的知识上:Arduino

因为Arduino封装了很多底层操作。除非自己尝试编写Arduino以及配套电路模块的库,否则还只是停留在基础的编程上;开源程度上:用STM32做出来的东西想开源就开源,不想开源可以什么都不公布

外围电路搭建难易:Arduino>>STM32

可拓展性:Arduino=STM32 Arduino基本上把控制器的大部分引脚都印出来了。

成本(做出来的东西具有相同的功能):Arduino>STM32

综上,如果还不知道怎么选择,这里给出选择建议:

1、如果你是对编程语言了解不深的大学层次以下的普通学生,建议上手Arduino;如果C功底薄弱上来就搞STM32你会很快有放弃的念头;

2、如果只是为了就业而学习,果断STM32类单片机;

3、如果只是为了好玩而学习,本身非电子类专业,没有信心,建议Arduino;

4、如果编程功底好,建议STM32。搞定之后你看看Arduino开源社区做的东西,用STM32轻轻松松搞定。

5、当然如果有能力,两者都接触接触,一般地一周不到Arduino的基本特性你就掌握了,如果以后需要用到它们的开源代码,你可以很自如地移植到STM32等MCU平台上。

其实大家通过以上介绍即可明白,这两者其实针对的方向不同,Arduino主要是针对电子爱好者和DIY学习,而STM32是针对于实际产品的研发制造,完全不同的领域,放一起比较不太合适。但是现在Arduino系列也能支出STM32的芯片,通过先下载Arduino固件,后就能使用Arduino的开发环境进行编程了。个人建议:根据自己项目类型和需求选择适合自己的才最重要。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

被大佬糊弄的只会点灯的小菜鸡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值