你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32和Arduino对比,谁更耐打?

[复制链接]
flyingstar 发布时间:2025-12-19 16:27
01
) I, a0 w+ e" x

$ M! w3 J7 k$ W/ m. C
: J; d9 U' y$ _# o
前两天,有一位同学问我嵌入式的学习路线。他是一个大三的学生,我看了他的简历,里面几乎没什么项目经验。对于企业来说,这样的学生就好比一张白纸一样。当然,这样的学生很难拿到一份好的offer。
0 Y: X# l+ Q" S
关于学习路线,大家可以参考这篇文章《[color=var(--weui-LINK)]成为嵌入式高手的技能清单和升级线路图》。其实不管是谁,如果你想从事嵌入式工作,我觉得还是要从51开始。我今天看到这篇文章,然后有了一个新的想法,如果你想从事应用开发,可以试试Arduino这样成熟的开发板,因为它的封装性、稳定性更好,几乎不用你去关心底层硬件的很多细节。

6 ?( E' K7 C1 S+ k& w2 \
但是,如果你想从事的是嵌入式软件,我建议还是要从51、STM32、rtos、Linux的路线去学习。后面的话,可以只选择rtos和Linux其中一种,毕竟想搞懂两个多任务系统,并且学好它们是很难的。
7 T" T' p- s* e3 R! s! b
在学习的时候,像一些常见的外设和总线也要一并学习了,总线时序是嵌入式底层的基础。
8 P" @$ e' j, q; |  T  M: c" L
02 5 r5 h* d" \% T4 p1 I8 I+ @# `

) f6 V+ K" B- \( N/ X, J' O  u6 c! A$ q3 e$ S7 }- h2 O, d
Arduino和STM32性能对比,究竟谁更厉害呢?
7 I9 T0 g3 z* l; F* v很多电子爱好者面对Arduino和STM32时,都会有个两难的决定,不知道如何选择使用。- g) t% t" k' Z: S' [8 O) Z* }
Arduino一直处在火热状态,但STM32接口多性能强,速度也较快……下面,我们就来谈一谈Arduino和STM32各自的特点。
/ l6 a; s" U0 L+ R- E& l+ HArduino:
6 p$ o" \& w7 s1 [7 h( {
微信图片_2025-12-19_162607_775.png / Z1 _$ C4 W7 `* X) ], F* Q$ F+ r

6 C2 m  c9 W/ cArduino更倾向于创意,它弱化了具体的硬件的操作,它的函数和语法都非常简单,而且非常“傻瓜化”。
- H; o# U/ F2 n2 g0 m
  u2 S: z9 p4 i8 O; c1 x3 {: U, n9 z
大部分Arduino的主控是AVR单片机,Arduino的优势还是代码封装性高,所需语句少,降低软件的开发难度。
$ s8 p1 e7 p' `! F( V
$ w) f7 b4 `% D- w  V7 w6 ^/ H  M
Arduino上手比较容易,只要懂一点点硬件和C++就能开发。
0 @; g$ H8 m5 P# g* H
9 c6 w$ Q* f3 K1 p' x6 `6 F
Arduino大多数功能都有做好了的库,所以使用起来很简单,但是对于稍微复杂点的功能可控性较差。# O1 e1 }; w6 E9 ~+ ?
STM32:% G. K$ X- {4 M' W
微信图片_2025-12-19_162611_328.png
! a0 V& V) W$ E& l& B& |/ i  f, }3 a7 C4 g: v. D$ o' b5 x1 ]! H
对于有计算或控制要求的,STM32是更好选择。STM32如果买开发板的话就要从硬件底层学起,掌握它的各种细节。. U1 s/ D" Q1 O
STM32更加注重工程实际,事实上,工厂中很多简单的仪器什么温控仪,什么普通的电机控制器,什么低档PLC,还有民用中的一些玩具,游戏手柄、有线键盘鼠标等外设,高校食堂里刷卡的pos机等等其实用得很多。* t9 @+ b0 I" Q3 K& ^' ~2 g

/ `! U, x3 a  t  a. P, k; a' H% ^STM32主要是给专业开发人员做产品用的,需要一定的专业知识,但同时编写代码实现功能也相对复杂。( N, V" Z+ M- b; \! F/ ~
比如串口输出一个简单的字符串,对于Arduino可能从新建工程开始,10行代码就能实现,但是如果使用STM32的开发工具比如Keil,可能需要上百行代码甚至更多。* m. `5 a3 |. E: K
03
- r4 p3 m0 o* ^$ u9 ^9 ]; `
  X7 K6 X. x* O3 _2 q/ r9 }& ^* I
& o7 ]) |, t1 h+ e& ]! {* U
Arduino和STM32对比:
' }6 H1 s6 u+ b; M7 u
Arduino有很多个版本,特性也并不一致,如果拿Arduino UNO R3这个最普遍的来说的话,它的控制器是AVR 138单片机,性能上和STM32不在一个水平上,该款在某种程度上和宏晶的STC12系列差不多(仅在运算上)。' U: s7 ~# G3 m- K; }; r; s
Arduino MEGA 2560 这款算是MCU版的Arduino中的老大了,接口丰富,应该和STM32F1系列不相上下,但是功耗挺大,芯片发热明显,而同款封装的STM32F1ZET6则仅有微热,环境温度低的时候甚至感觉不到有温度。& t, o( s! R2 y+ x# q$ \
. D/ g7 q9 \/ n- D9 X
根据两者的不同特性,我们可以按照不同应用来比较:$ r) p5 Z2 n1 V1 Y
8 Z" e- d- p5 e+ r, s! L9 }
首先,在学习容易程度方面,Arduino相对于STM32容易很多。  e2 S9 S2 d3 K- ?0 @- l

' s3 Y  _. C) e' {) G/ u: O  ?其次,二者要求的基本编程思想也不同。Arduino:面向对象的类C++、类Java为主,它的语言基于C但是又有些四不像;而STM32则以正统的C语言为主要开发语言。& d6 `4 S% Y1 t( h

3 q' X/ b2 `( y+ h; E' O! W
另外,在学习后获得的知识上,Arduino也要弱于STM32。因为Arduino封装了很多底层操作。除非自己尝试编写Arduino,以及配套电路模块的库,否则还只是停留在基础的编程上。, l$ Q* e( v% i2 |4 v
开源程度上:2 V2 a# O. Z) _: z9 [5 t. m$ G0 _
用STM32做出来的东西想开源就开源,不想开源可以什么都不公布。4 |+ k7 h) S% P' d
& C! N) e1 [( x0 ]: |6 o
首先,在外围电路搭建难易程度上,Arduino远大于STM32。
( I  j# k9 v0 _

8 H" p# T$ X. @, L8 k5 v
其次,在可拓展性方面,Arduino与STM32相当,Arduino基本上把控制器的大部分引脚都印出来了。' f8 D. ~- A) A8 ~0 o5 z- y
最后,再说说成本。假设做出具有相同功能的东西,Arduino的成本往往高于STM32。  ; E4 \; c) w- |" x
04 - X# A5 A9 ^' g: i0 L

; g0 u# h$ e5 }$ K2 z4 `( ?1 {! d! h- z' P2 B9 J$ q# G( Z
总结一下,如果你还不知道怎么选择,下面将给出选择建议:
/ P, c2 D( A$ F/ g+ q2 V0 Y0 E

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

2. 如果C功底薄弱上来就搞STM32你会很快有放弃的念头;
0 O& ]$ C) s& x" e% c

3. 如果只是为了就业而学习,果断STM32类单片机;
5 p3 D) a3 v" q, h

4. 如果只是为了好玩而学习,本身非电子类专业,没有信心,建议Arduino;1 K: |0 H, ^$ q' i8 e

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


+ ~, I% k! i" u当然,如果有能力的话,两者都可以接触接触。一般情况下,一周不到Arduino的基本特性就能掌握,以后有需要的话,可以很自如地移植Arduino代码到STM32等MCU平台上。( K  X$ k7 N# t/ O$ x& P* W
其实,这两者其实针对的方向略有不同,Arduino一般电子爱好者和DIY的选择,而STM32往往用于实际产品的研发制造。
+ ~+ K6 s; L$ `但是,现在Arduino系列也能支持STM32的芯片,通过先下载Arduino固件,后就能使用Arduino的开发环境进行编程了。根据自己项目类型和需求,选择适合自己的才最重要。
) r5 [% n* P9 |; y7 E8 C7 \END
赞 收藏 评论1 发布时间:2025-12-19 16:27

举报

1个回答
wlp向日葵 回答时间:2025-12-23 14:49:17

感觉arduino基本就是调用api,对于底层学习和理解帮助不大,相反会了stm32的,转过去学auduino更简单,选择其他芯片也更容易上手

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版