pxz3wqzgtei64080025138.gif
; W2 q6 c- I8 {! l; a' g
点击上方蓝色字体,关注我们: i4 R$ H% j; R8 o1 m
来源于小伙伴提问:
" a7 N$ S2 B5 `* l& @8 o, d) p) M i
7 {6 h: y) J; X
wn3hlhaodum64080025238.png
' E9 X% V- A" @1 [' ]; W6 C& R/ R9 E8 S2 {4 ^# f! y8 n: \
下面是我的一些看法。
x. ? r) ~; r8 b8 q, m, w& I) Y4 x, T2 x+ j6 K O/ v
放弃51直接学STM32完全可行,甚至可能更适合你。, M9 I; V# X$ k" b5 X7 \0 ?( W
% Q7 O4 O7 W3 s. LSTM32能满足你做酷炫项目的需求,开发门槛也没有想象中高。- D( I U5 ], A. ?
( z! n) I! C: i3 ~# p, ?至于电路设计和PCB方面的学习曲线,虽然略有挑战,但通过资源丰富的在线教程和工具,你可以快速上手。
' _! D5 k, y7 L& X1 f: X5 W1
4 R5 Q0 G, K8 ?0 `$ o6 V跳过51直接学STM32的问题?
& i. V& P \9 W2 U: O3 {9 q" `首先,51单片机(8051架构)是个“老前辈”,很多人从它开始学,因为它简单、成本低、资源丰富。但是它的性能和功能的确过时了,尤其是在如今需要更高性能、更多外设支持的项目里,它的局限性很明显。
+ \4 h6 V' ~' l% ]0 A5 \$ @9 H0 r- J! J$ I
STM32属于ARM Cortex-M系列,功能强大、功耗低、外设丰富,支持很多你感兴趣的特性,比如无线通信、传感器接口、实时数据处理等。
, T& D8 U( Q' ]- O
2 E# }* s; ]" A6 |7 u/ j从51直接转STM32,你可能会遇到以下问题:5 y' i6 L! n" V/ N* u* ~
开发环境的复杂度增加:STM32的开发环境和工具链(如STM32CubeMX、Keil等)比51要复杂一些,不过有很多资源可以帮你快速上手。而且,很多代码配置可以自动生成,比你手动写寄存器操作要容易得多。资源和学习曲线:STM32有更多的外设、更多的中断、更复杂的时钟系统,所以一开始你可能会感到头大,但因为你已经对C语言有一定了解,所以习惯了之后,你会发现STM32能帮你轻松应对各种挑战。跳过汇编:虽然你说汇编不会,其实很多STM32开发中并不需要深入了解汇编,大部分C语言就够用了。很多库和框架都为你封装好了底层的东西,直接用C写高层逻辑就行。
. t, S# \: x& ^
8 N5 w6 ^9 z# P \0 T( n2
) N# ~( K0 l; Y- m+ p为什么STM32适合你?
; ~ I+ s6 q2 A& m4 gSTM32能更好地支持你“玩”那些有意思的东西。
$ e5 ?! ~6 b1 F+ k" n) J ~
( E- d/ A7 N, h6 x& e: y比如你提到的:) A& |0 v, p8 w% K1 ^8 Z
自平衡小车、飞行器:STM32有强大的定时器、PWM输出、ADC/DAC等硬件功能,可以轻松处理电机控制和传感器输入。无线通信、Wi-Fi、蓝牙等功能:STM32可以用外部模块进行Wi-Fi和蓝牙的通信,而像ESP32这种芯片直接集成了Wi-Fi和蓝牙功能,可能对你这种项目更合适。图像处理、红外线感应:STM32能处理复杂的传感器输入,处理速度比51要高得多,这对实时的控制和数据处理至关重要。
: h& L8 u# X1 M6 X
: g2 B- \7 s3 _# F% ]9 e3 W# c3
1 }* R: I4 B* c5 p4 e额外疑问回答
# Q x6 L( L" CSTM32学习推荐
3 [( _0 F5 C' t: Q N* ^/ p/ a开发板:STM32F103(入门经典款)、STM32F4(更高性能,适合复杂应用),或者试试STM32 Nucleo开发板,兼容Arduino扩展板,适合从简单项目入手。
3 q, J, k+ j; A2 H7 W* x, R- r6 s0 t4 m- ^( g( [3 U
教程推荐:看一些YouTube教程或者B站上的STM32入门课程。可以从正点原子、野火的教学资料入手,他们都有详细的硬件和软件讲解。7 o4 W7 I! p$ G; h: k+ W
: h i" ?9 _* {7 y. R* |5 c画板、焊接、PCB流程
: N' n7 {; r" I9 s6 i2 j$ v) m! s如果你要自己画板和做硬件开发,得学点模拟电路和数字电路。可以参考《电子工程师基础教程》和《电路基础》这类书籍。像你提到的pcb设计,确实是你设计好电路图后,通过像EasyEDA、Altium designer之类的工具画出PCB,然后可以找厂家做板子,像JLCPCB等网站很方便。* t& |+ j- w, K8 P' B6 B/ n9 W6 i
0 |% f! i/ P# c7 M
至于焊接,你需要学点焊接基础,学会用烙铁手工焊接简单的元件,或者直接把设计好的PCB送去焊接厂做smt贴片。
: U ?/ A" j1 G3 c; L* }8 R4 O. }' S/ ^" U6 z- H
多久能达到熟练?6 ~, h& d' h( e3 V8 m0 b
学习速度因人而异,但你有编程基础,这是一大优势。大概半年到一年你就能做一些简单的自制硬件项目,比如自平衡小车或传感器的集成。
4 P0 Z0 }5 r! h5 N/ C( J9 Y2 c2 ^4 }# G' G' y X) ?( H d- Y" z8 ?
如果想完全掌握从设计电路到实现复杂功能,可能需要更长时间,比如2年左右能熟练掌握电路设计、PCB制作和固件编程。
; F1 Q8 {$ w" C5 n) \. h# t, G" M% l) D1 ?' n9 }$ O
收入问题
& Z# a, s; z4 ~6 |% ?嵌入式开发行业的薪资差距较大,初级工程师(刚转行或新手)月薪大概在8K-12K人民币,而熟练的嵌入式开发者可以拿到15K-25K人民币甚至更多。$ n( y- Z! t! {6 l; Y% \
! I+ K2 t* e3 X9 d$ @7 Z5 V
如果你有了这方面经验,不仅能做自己感兴趣的项目,还能进入物联网、智能硬件等高薪行业。. \5 S3 p5 B" |2 L3 u: Q/ ^
r4pc0w0e24v64080025338.jpg
/ B; A: A, [8 k7 q p
dap03bbrdo064080025438.gif
6 h$ X! N C; Q7 Q
点击阅读原文,更精彩~ |