電子產(chǎn)業(yè)一站式賦能平臺

PCB聯(lián)盟網(wǎng)

搜索
查看: 43|回復(fù): 0
收起左側(cè)

單片機(jī)學(xué)到什么程度可以滿足工作需求?

[復(fù)制鏈接]

514

主題

514

帖子

2920

積分

三級會員

Rank: 3Rank: 3

積分
2920
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2024-9-19 08:15:00 | 只看該作者 |只看大圖 回帖獎勵 |倒序?yàn)g覽 |閱讀模式
6 {" @7 T, S5 A0 r0 t
點(diǎn)擊上方藍(lán)色字體,關(guān)注我們# z' X2 D9 t+ B9 S% G
首先,明確方向是至關(guān)重要的。如果你對嵌入式開發(fā)感興趣,建議專攻軟件,而不是硬件。這并不是說硬件不重要,而是因?yàn)榇蠖鄶?shù)公司都有專門的硬件團(tuán)隊(duì)負(fù)責(zé)相關(guān)工作,單片機(jī)的硬件部分并不會成為學(xué)習(xí)的重點(diǎn)。如果你試圖同時學(xué)硬件和軟件,往往兩邊都無法深入掌握。9 k2 K' p) C0 B8 c) p0 }4 d1 |

5 H: H3 K* Y- y9 W( b當(dāng)然,小型公司可能更偏好“全能型”工程師,他們希望一個人能完成從軟件到硬件的所有工作,以節(jié)約開發(fā)成本。但是,這類公司通常規(guī)模較小,往往是創(chuàng)業(yè)公司,只有一到兩個技術(shù)人員,這些技術(shù)人員既要設(shè)計(jì)和調(diào)試硬件,還要負(fù)責(zé)生產(chǎn)、維修,甚至做結(jié)構(gòu)設(shè)計(jì)和產(chǎn)品組裝。而一旦公司規(guī)模有所擴(kuò)展,軟硬件的分工就會更加明確。
5 Q2 A0 G2 h" y. f8 D
! C1 F$ G- V' r7 F2 _) R因此,如果你決定專攻軟件,硬件知識的要求就相對較低了。你只需要掌握如何閱讀簡單的電路原理圖,懂得一些基礎(chǔ)的電路分析知識即可,像基爾霍夫定律、戴維南定律、節(jié)點(diǎn)法和網(wǎng)孔法這些基本的電路理論就足夠應(yīng)對硬件工作中的需求了。
3 w; ]6 k/ }" s3 v0 Q* D( O: q1 ]
0 C+ b2 {2 |6 Q6 x0 a" f學(xué)習(xí)路徑建議
  • 學(xué)習(xí)基礎(chǔ)C語言和MCU開發(fā)板- p8 u- r9 E# t: u1 Y& m
    如果你有一定的C語言基礎(chǔ),可以直接購買一個STM32ESP32開發(fā)板,開始動手學(xué)習(xí)。
    8 E( O; g6 d! c0 m6 f這里不建議你專門學(xué)習(xí)匯編語言,現(xiàn)代公司99%的場景中都不會用到它。  I9 |* V5 `" A" a! ]* J- p
    對于C語言的學(xué)習(xí),也不要過于刻意,一開始遇到問題再去學(xué)習(xí)解決,這樣學(xué)習(xí)效率會更高。
  • 避免Arduino. ~' b$ m0 r: c0 B
    不要以Arduino作為你的主學(xué)習(xí)工具。9 U4 P/ m2 N3 G
    雖然Arduino作為入門工具不錯,但它的靈活性和性能限制較大,正經(jīng)公司在實(shí)際項(xiàng)目中不會用它。( q( N' P/ ^* \/ _$ ~% a" X
    Arduino更適合初學(xué)者或?qū)W生學(xué)習(xí)硬件編程的基礎(chǔ)概念,而不是實(shí)際的嵌入式項(xiàng)目開發(fā)。
  • 深入掌握MCU外設(shè)和寄存器操作+ f) l: {1 y7 g; [' n  m; Y1 R% }0 {
    學(xué)習(xí)開發(fā)板中常用的外設(shè)接口,比如GPIO、ADC、DACTimer(PWM)、UART、SPI/IIC等。% u) W* |7 V( l; b) @, @2 q3 P
    它們在絕大多數(shù)項(xiàng)目中都會用到,因此你需要了解這些外設(shè)的用途、工作原理,并通過實(shí)際的代碼調(diào)試加深理解。
    ; V1 r! J0 f3 i1 A, \5 h此外,中斷的使用也是關(guān)鍵,特別是在ADC、TimerUART的使用場景中。
    - P8 T2 T4 P' k7 p) S+ g不要僅僅依賴廠商提供的庫函數(shù),深入到寄存器層級,閱讀MCU廠商提供的《軟件設(shè)計(jì)手冊》和《數(shù)據(jù)手冊》,理解每個寄存器的作用和使用場景。$ z( F4 N  j9 u
    你應(yīng)該具備通過直接操作寄存器來配置和控制外設(shè)的能力。
  • 學(xué)習(xí)嵌入式操作系統(tǒng)& `& V9 ^+ T4 _& z
    接下來,你需要學(xué)習(xí)一個嵌入式操作系統(tǒng),比如FreeRTOSRT-Thread
    . ?( d/ P/ \; o! x! F9 Z8 F( [7 \在學(xué)習(xí)這些操作系統(tǒng)時,重點(diǎn)掌握如何編寫任務(wù)和中斷銜接程序,不用花費(fèi)太多精力在移植操作上,因?yàn)楣卷?xiàng)目中通常會由專人或廠商負(fù)責(zé)移植工作。
    , \, D6 j0 S& q% k多任務(wù)協(xié)調(diào)是嵌入式開發(fā)中的一個重要技能,熟練掌握多任務(wù)的協(xié)調(diào)工作,而不僅僅是編寫?yīng)毩⒌娜蝿?wù)。
  • 包裝你的學(xué)習(xí)成果4 V. E- @, N. I
    學(xué)習(xí)的過程中,你可以將自己的學(xué)習(xí)過程包裝成一個完整的項(xiàng)目。
    # A) Z3 h" B% C1 H; p你要設(shè)想產(chǎn)品的功能、目標(biāo)用戶、應(yīng)用場景以及解決的問題,并把學(xué)習(xí)內(nèi)容融入到這個虛擬的項(xiàng)目中。0 E3 i- a( |. g, K* ?
    不要過度堆砌外設(shè),避免顯得不真實(shí)。  P$ L% K) n- Q3 q; l! n& p
    [/ol]
    0 l- g0 ~; ~4 k! Q' Q深度技能加分項(xiàng)
    8 o% S" e9 G; I8 q* V! T! ?6 ~經(jīng)過上述學(xué)習(xí)后,如果你擁有985/211名校背景或碩士學(xué)位,在進(jìn)入職場時可能已經(jīng)具備一定的競爭力。; b, C5 K# d6 |4 u& u: x" b" O1 T
    8 Q+ u1 T2 g) }) S
    如果沒有名;?qū)W位的加持,那么以下這些技能可以為你加分:
  • Cortex-M內(nèi)核:深入理解MCU內(nèi)核的各個組成部分及其工作機(jī)制,包括啟動流程、指令集、存儲映射、SysTick定時器、異常和中斷等。
  • IoT操作系統(tǒng):進(jìn)一步學(xué)習(xí)物聯(lián)網(wǎng)操作系統(tǒng)的高級功能,如設(shè)備驅(qū)動模型、文件系統(tǒng)、低功耗管理、以太網(wǎng)及TCP/IP協(xié)議棧等。這些系統(tǒng)類似于Linux的簡化版,有助于你未來學(xué)習(xí)更復(fù)雜的操作系統(tǒng)。
  • Modbus與RS-485:學(xué)習(xí)Modbus協(xié)議的應(yīng)用場景、報文格式、通信時序及常用命令。這是工業(yè)控制中廣泛使用的協(xié)議。
  • CAN通信:掌握CAN協(xié)議,這是汽車行業(yè)的必備技能,了解報文格式、通信時序及常用命令。
  • 藍(lán)牙或USB:學(xué)習(xí)藍(lán)牙或USB的協(xié)議棧結(jié)構(gòu)、通信時序及常用應(yīng)用層端點(diǎn),這是物聯(lián)網(wǎng)開發(fā)中的常用技術(shù)。
  • PID控制算法:理解并調(diào)試PID控制算法,特別是在工業(yè)控制中廣泛應(yīng)用。
  • LCD及UI開發(fā):掌握一種UI庫的常用控件,特別是在有屏幕交互的嵌入式項(xiàng)目中有用。
  • Bootloader開發(fā):理解Bootloader的原理、內(nèi)存分配及在線升級機(jī)制,這是嵌入式系統(tǒng)啟動的核心部分。
  • TCP/IP協(xié)議棧:深入學(xué)習(xí)TCP/IP分層模型、鏈路層協(xié)議及Socket編程接口。理解通信協(xié)議中的分層模型有助于構(gòu)建健壯的網(wǎng)絡(luò)系統(tǒng)。
  • C++在嵌入式開發(fā)中的應(yīng)用:學(xué)習(xí)C++的面向?qū)ο筇匦,掌握異常處理、RTTI(運(yùn)行時類型識別)和STL(標(biāo)準(zhǔn)模板庫)等高級特性。隨著嵌入式系統(tǒng)日益復(fù)雜,C++將在嵌入式領(lǐng)域中發(fā)揮更大的作用。
    + r; v) B) e& _* d# C3 j, o' p+ b[/ol]
    7 h1 }) L, N! @8 e后續(xù)方向
    / \# s3 ~# L4 c- k: s5 i當(dāng)你掌握上述技能后,技術(shù)方向可以延伸至以下領(lǐng)域:
    7 K# Z! x) Y4 q- t
  • 硬件設(shè)計(jì)
  • Linux內(nèi)核與驅(qū)動開發(fā)
  • QT與C++應(yīng)用開發(fā)
  • Android/iOS應(yīng)用開發(fā)
  • 架構(gòu)師方向' g( @, a- d: O& L+ L! i

    * F: x8 S3 d1 q2 j& W9 Y + F7 J; f- ~( T  D. g! b

    5 O6 @" W: K, l點(diǎn)擊閱讀原文,更精彩~
  • 回復(fù)

    使用道具 舉報

    發(fā)表回復(fù)

    您需要登錄后才可以回帖 登錄 | 立即注冊

    本版積分規(guī)則

    關(guān)閉

    站長推薦上一條 /1 下一條


    聯(lián)系客服 關(guān)注微信 下載APP 返回頂部 返回列表