STM32和Arduino对比,谁更厉害?

前两天有一个同学问我嵌入式的学习路线

他是一个大三的学生,我看了他的简历,里面几乎没什么项目经验,对于企业来说这样的学生就好比一张白纸一样,当然,这样的学生很难拿到一份好的offer。

学习路线的文章我记得已经发了很多次了,在知识星球里面也有提了很多次,不管是谁,如果你是想从事嵌入式,还是要从51开始,我今天看到这篇文章,然后有了个新的想法,如果你想从事应用开发,可以试试Arduino这样成熟的开发板,他们的封装性、稳定性更加好,几乎不用你去关心底层硬件的很多细节。

但是如果你想从事的是嵌入式软件,我建议还是要从51、STM32、rtos、Linux的路线去学习。后面的话,可以只选择rtos和Linux其中一种,毕竟想学好两个多任务系统,并且学好是很难的。

在学习的时候像一些常见的外设和总线也要一并学习了,总线时序是嵌入式底层的基础。

4bd217c9c21fe3f0e33534c7cf7c9731.png

以下是内容正文

-----

Arduino和STM32性能对比究竟谁更厉害呢?

很多电子爱好者面对Arduino和STM32时都会有个两难的决定,不知道如何选择使用。Arduino一直处在火热状态,但是STM32接口多性能强,速度也较快?

Arduino和STM32各自的特点

Arduino:

c66a122508d92918e147a9d545b512e6.png

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

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

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

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

STM32:

2f87926b88724509926a9fb13eab85c2.png

对于有计算或控制要求的,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语言为主要开发语言,相关推荐:嵌入式开发为什么选择C语言?

学习后获得的知识:Arduino弱于STM32。

因为Arduino封装了很多底层操作。除非自己尝试编写Arduino以及配套电路模块的库,否则还只是停留在基础的编程上。

开源程度上:

用STM32做出来的东西想开源就开源,不想开源可以什么都不公布。

外围电路搭建难易程度:Arduino远大于STM32。

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

成本:假设做出具有相同功能的东西:Arduino成本高于STM32。  

94706ff509d271499d967bbfeb5920bc.png

总结一下

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

  • 如果你是对编程语言了解不深的大学层次以下的普通学生,建议上手Arduino

  • 如果C功底薄弱上来就搞STM32你会很快有放弃的念头

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

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

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

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

其实这两者其实针对的方向略有不同,Arduino一般电子爱好者和DIY的选择,而STM32往往用于实际产品的研发制造。但是现在Arduino系列也能支持STM32的芯片,通过先下载Arduino固件,后就能使用Arduino的开发环境进行编程了。根据自己项目类型和需求选择适合自己的才最重要。

a8f11f8bbfde3d0536423e109f538628.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/464209.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

窗体中实现按 回车键 跳到下一个可选的TabIndex控件

Form中一“textbox”,两“button”,如何实现在textbox中按下回车响应button.click事件 :1)把按钮的tabindex依次设置.如btnSure 1 ,btnModify 2, textbox 5等// 把下面的代码放到窗体中可以实现按回车键跳到下一个可选的TabIndex控件:protec…

技术支持

iOS技术支持 有问题的可以留言。 邮箱地址:838086119qq.com 地址:上海市复旦软件园 谢谢! iOS program design & system consultation if you have any question, please contact me with no hesitate Email: 838086119qq.com Add: 2B05 of Fudan So…

人大计算机在职考研好考吗,人大在职研究生好考吗?通过率高吗?

答:最近咨询人大在职研究生进行学习的人非常多,其中咨询最多的问题是考试难度及通过率。下面就通过在职研究生招生信息网为大家介绍一下,人大在职研究生好考吗?通过率高吗?人大在职研究生招生是采用同等学力申硕的方式,该方式是…

可能你还不懂浮点数

在网上看到一个问题然后看到这篇关于浮点数的文章,希望大家看了之后有所启发想一下,为什么第一个打印的和预设值不同,但是第二个是相同的?如图:尾数部分是如何转变成二进制的?前言很多人在初学写程式时都会…

股票自动交易使用协议

国家的法律规定其它人是不可能代替别人进行股票操作的。所以我们让用户使用股票自动交易软件的时候必须很清楚的让用户知道,他使用这个软件是他自己的意图,软件执行的策略也是它自己的策略,而不是我强加给他的。这样我们就需要写一个协议给用…

RTP协议的封装

最近一段时间学习了RTP协议相关的内容,一方面为了将自己学到的部分记录下来,便于后续查找,另一方面用于记录笔记 一个协议的封装是为了满足协议的功能需求的。从前面提出的功能需求,可以推测出RTP封装中应该有同步源和时戳等字段&…

【收集】ADOADO.NET 读取 Oracle 数据集

开始尝试用存储过程读取Oracle 数据集,收集了一些文章,基本上都来自MSDN:使用 ADO.NET 访问 Oracle 9i 存储过程 http://www.microsoft.com/china/MSDN/library/data/dataAccess/DMSDNorsps.mspx?mfrtrue如果包返回多个游标,则 D…

python 运行shell命令

在python 中实现运行多条shell命令 今天小编就为大家分享一篇在python 中实现运行多条shell命令,具有很好的参考价值,希望对大家有所帮助。 一起跟随小编过来看看吧 使用py时可能需要连续运行多条shell 命令 # coding: UTF-8 import sys reload(sys) sy…

组合公式计算机,(最新整理)排列与组合的概念与计算公式

《(最新整理)排列与组合的概念与计算公式》由会员分享,可在线阅读,更多相关《(最新整理)排列与组合的概念与计算公式(3页珍藏版)》请在人人文库网上搜索。1、完整)排列与组合的概念与计算公式(完整)排列与组合的概念与计算公式编辑整理:尊敬的…

sudo应用

sudo需求,公司程序员某些数据同步后需重启服务,给予root免登录权限固然简单,但存在太大的风险;所以我做了sudo限制,只允许用户从固定IP连接执行指定的命令,不需输入用户名 密码技术要点:sudo …

Alpha冲刺(7/10)

团队信息 队名:爸爸饿了组长博客:here作业博客:here组员情况 组员1(组长):王彬 过去两天完成了哪些任务 学会了POSTMAN的使用,对后端已经完成的接口进行了收发消息正确性的验证推进项目进度&…

biztalk BLogs

http://biztalkdev.com/blogs/default.aspx http://www.biztalkgurus.com/tags/http/default.aspx http://tag.csdn.net/tag/biztalk.xml http://www.cnblogs.com/team/BiztalkSolution%20.html 转载于:https://www.cnblogs.com/lianyonglove/archive/2007/04/02/697270.html

epoll模型之服务器设计

Linux2.6内核中提高网络I/O性能的新方法-epoll I/O多路复用技术在比较多的TCP网络服务器中有使用,即比较多的用到select函数。1、为什么select落后首先,在Linux内核中,select所用到的FD_SET是有限的,即内核中有个参数__FD_SETSIZE…

服务器分虚拟空间,服务器怎样分虚拟主机

自己操作的话,首先有一个固定ip,做主机的电脑可以24小时开机。装上服务器软件,可以装 IIS 或者 linux/bsdapache。数据库的话是看你的网页设计需要的,如果有数据库开发的动态网页,那就必须装了。最好是专用服务的web服…

AIX 用户管理

http://www.ibm.com/developerworks/cn/aix/library/au-aixuseradmin/

不限学历、不限学校、华为天才少年招聘

我在前同事的朋友圈看到的招聘信息。不限学历,不限学校我相信这个规则一定会让后续的很多企业效仿,工作至今,遇到很多能力很强但是学历一般的人,而对于面试者,可以大胆的说出那句话,人家华为都不限制学校学…

ASP.NET 2.0服务器控件与组件开发中文版即将出版

Professional ASP.NET 2.0 Server Control and Component Development的中文版的书已经翻译成中文了,本书比较厚,不知道会翻译的如何。http://www.china-pub.com/computers/common/info.asp?id34470这本书有些地方还是值得看的,因为是唯一一…

饥荒联机版服务器显示错误,小白求问 搭服务器出现这种情况是怎么回事

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼[00:00:00]: DownloadMods(0)[00:00:00]: FMOD Error: An invalid object handle was used.[00:00:00]: LOADING LUA SUCCESS[00:00:01]: PlayerDeaths could not load morgue[00:00:01]: PlayerHistory could not load player_his…

linux学习第九天 (Linux就该这么学)

今天讲了raid0 至少两块盘串联在一起,读写性能提升,但不具备数据备份和错误修复能力,RAID1把两块盘绑定,在写入数据时,同时写入到多块硬盘设备,raid5推荐使用,10推荐使用 LVM,今天是在外面加班…

[Windows Phone] 为应用添加后台计划任务 – Scheduled Task Agent

前段时间做过一个天气应用,一直是只支持前台获取数据,上周末参加了Windows Phone的CodeJam和高手们交流了一下,发现实现后台定时更新功能也不是很难,于是在网上找一些资料,在找资料的过程中发现,网上的一些…