0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

用STM32该鄙视Arduino吗?

STM32嵌入式开发 来源:STM32嵌入式开发 2023-01-03 14:56 616次阅读

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

Arduino和STM32各自的特点

Arduino:

54535236-89a7-11ed-bfe3-dac502259ad0.png

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

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

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

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

STM32:

545f0ca2-89a7-11ed-bfe3-dac502259ad0.png

对于有计算或控制要求的,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

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

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

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

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

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

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

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • STM32
    +关注

    关注

    2270

    文章

    10895

    浏览量

    355711
  • 开发板
    +关注

    关注

    25

    文章

    5032

    浏览量

    97371
  • Arduino
    +关注

    关注

    188

    文章

    6468

    浏览量

    186945

原文标题:用STM32该鄙视Arduino吗?

文章出处:【微信号:c-stm32,微信公众号:STM32嵌入式开发】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    相关推荐

    基于Arduino的串口通信项目

    基于Arduino的串口通信项目涉及多个方面,包括硬件连接、软件编程、串口参数配置等。 一、硬件准备 Arduino开发板 :确保你有一块Arduino开发板,如Arduino Uno
    的头像 发表于 11-22 09:24 462次阅读

    stm32Arduino的比较

    在微控制器的世界里,STM32Arduino是两个经常被提及的名字。STM32是一系列由STMicroelectronics生产的高性能微控制器,而Arduino则是一个开源电子原型
    的头像 发表于 11-19 15:45 719次阅读

    stm32单片机什么软件编程

    STM32单片机是一种广泛应用于嵌入式系统领域的微控制器,具有高性能、低功耗、丰富的外设接口等特点。要对STM32单片机进行编程,需要选择合适的软件工具。 概述 STM32单片机
    的头像 发表于 09-02 10:16 1249次阅读

    stm32串口烧录怎么设置

    准备工作 确保您拥有STM32开发板和相应的硬件设备,如USB转串口模块。 安装STM32CubeMX和STM32CubeProgrammer软件,这些是ST官方提供的工具,用于配置和烧录ST
    的头像 发表于 08-22 09:33 1428次阅读

    怎样Arduino测试锂电池容量

    本文详细介绍了如何用Arduino测量锂电池的容量。并附有电路图和Arduino的程序代码。
    的头像 发表于 07-30 09:14 844次阅读
    怎样<b class='flag-5'>用</b><b class='flag-5'>Arduino</b>测试锂电池容量

    Arduino自制点焊机

    组装18650电池组,要用到点焊机,本文介绍Arduino控制点焊机的点焊时间。
    发表于 07-29 10:14 6次下载

    每次env工具重新生成工程后,STM32_HAL我添加的库文件会消失,从哪儿添加呢?

    每次env工具重新生成工程后,STM32_HAL我添加的库文件会消失,那从哪儿添加呢?
    发表于 07-18 07:04

    Arduino放回了一个空的schetch,重新打开了程序不断重启的原因?

    . 我arduino重新加载,就像照片2一样,但它总是以相同的方式重新启动。 我将代码切成两半,重新加载,它有效。 我恢复原始代码,加载它,它有效。 我将相同的程序与加载器放回原处,它会不断重新启动
    发表于 07-10 07:22

    arduino环境下blufi无法配网,蓝牙初始化不成功是怎么回事?

    arduino环境下blufi无法配网,蓝牙初始化不成功,是什么回事
    发表于 06-26 08:18

    idf-arduino component组件怎么设置 ?

    idf -arduino component组件怎么设置 ,。 CMake Warning at E:/COMPILE/Othert/IDF4.4/esp-idf-v4.4/tools
    发表于 06-12 07:27

    NUCLEO可以直接利用现有的ARDUINO资源不?

    如题,对3D打印比较感兴趣,不过不会用Arduino,所以问问大家,NUCLEO可以直接利用现有的ARDUINO资源不。
    发表于 05-15 07:13

    请问STM32 Nucleo系列与Arduino具体怎么结合起来用?

    STM32 Nucleo系列与Arduino具体怎么结合起来用?
    发表于 05-14 07:00

    如何用Arduino开发STM32G070?

    如何用Arduino开发STM32G070,各位大神有相关教程吗。我如何在Arduino的开发板管理器中添加STM32G070开发板,如何把程序下载到CPU中?
    发表于 04-07 08:22

    arduino如何停止loop循环

    Arduino的loop循环是其主要的程序执行部分,循环将在Arduino开发板上持续运行,并且只有在程序被重新上传或开发板断电重启时才会停止。然而,在某些情况下,你可能需要在程序执行过程中停止或
    的头像 发表于 02-14 16:24 4498次阅读

    arduino中while循环怎么跳出

    执行某段代码的情况。然而,如何在合适的时机跳出 while 循环是一个需要注意的问题。本文将详细介绍 Arduino 中 while 循环的基本概念,以及如何使用不同的技巧跳出循环来实现代码的灵活控制
    的头像 发表于 02-14 16:22 2556次阅读