论坛元老
 
- 积分
- 4163
- 金钱
- 4163
- 注册时间
- 2017-10-24
- 在线时间
- 251 小时
|
发表于 2018-6-7 08:56:30
|
显示全部楼层
Arduino也有很多个版本,特性也并不一致,如果拿Arduino UNO R3这个最普遍的来说的话,它的控制器是AVR 138单片机,性能上和STM32不在一个水平上,该款在某种程度上和宏晶的STC12系列差不多(仅在运算上),但是没有做过实际评测,故无法拿出好的对比。Arduino MEGA 2560 这款算是MCU版的Arduino中的老大了,接口丰富,应该和STM32F1系列不相上下,但是功耗挺大,芯片发热明显,而同款封装的STM32F1ZET6则仅有微热,环境温度低的时候甚至感觉不到有温度。
另外我觉得,Ardunio和STM32应该是两个概念,Arduino是一个平台,STM32仅仅是一款单片机而已。Arduino也有出过使用STM32作为控制器的板子啊。一般地,Arduino是给那些原本从事软件,现在想接触硬件的人用的,它把许多底层硬件操作都封装为一个一个的函数,虽然有损执行效率(其实也不一定,编译器会做针对性的优化),但是在程序的理解、结构、组织上非常方便(利用C++面向对象的特性)。个人感觉,Arduino就是用来玩儿的,用于未成年编程入门教育(淘宝上卖的大部分是这个用途),结合丰富发外围电路【模块】,供电子爱好者快速搭建硬件并且实现自己的想法。STM32更注重工程实际,事实上工厂中很多简单的仪器什么温控仪,什么普通的电机控制器,什么低档PLC,还有民用中的一些玩具,游戏手柄、有线键盘鼠标等外设,高校食堂里刷卡的pos机等等其实用得很多。而目前为止我拆过的东西中,极少见过是用AVR单片机的;本科做比赛也有人用过Arduino,但也是那些非电子专业的人用的。
说了一堆废话,说说我的评价吧。每个人三观不同,评测标准不同,勿拍砖。
在学习容易程度上:Arduino>STM32类
要求的基本编程思想:Arduino:面向对象的类C++、类Java为主,它的语言基于C但是又有些四不像;STM32则以使用结构体的C为主
学习后获得的知识上:Arduino<STM32类
(这样的原因正是因为Arduino封装了很多底层操作。除非你尝试自己编写Arduino以及配套电路模块的库,否则还只是停留在基础的编程上)
开源许可证:Arduino:Commons(CC),注意如果你修改了电路板,根据此协议你必须将你的新电路板开源,我不清楚有没有法律保护,但是根据开源软件领域的做法,不这样做会受到全行业的鄙视和谴责。这对于某些商业产品是不能接受的。
STM32类:开源许可证是啥?用32做出来的东西我想开源就开源,不想开源我可以什么都不公布
外围电路搭建难易:Arduino>>STM32
可拓展性:Arduino=STM32 Arduino基本上把控制器的大部分引脚都印出来了。
成本(做出来的东西具有相同的功能):Arduino>STM32
....想不到还有别的了
综上,给出选择建议:
1、如果你是对编程语言了解不深的大学层次以下的普通学生,建议上手Arduino;如果C功底薄弱上来就搞STM32你会很快有放弃的念头;
2、如果只是为了就业而学习,果断STM32类单片机;
3、如果只是为了好玩而学习,本身非电子类专业,没有信心,建议Arduino;
4、如果编程功底好,建议STM32。搞定之后你看看Arduino开源社区做的东西,用STM32轻轻松松搞定。
5、当然如果有能力,两者都接触接触,一般地一周不到Arduino的基本特性你就掌握了,如果以后需要用到它们的开源代码,你可以很自如地移植到STM32等MCU平台上。
|
|