我2011年就開始從事嵌入式軟體開發,
很多人覺得學習嵌入式開發比高考還難,不知道怎么入門?要學哪些東西?
嵌入式開發涉及的知識,你確實一輩子都學不完,
但是,這不代表你需要花費很長的時間才能學會,
我相信大多數人學習的目的,都是先通過學習這個技能找份作業,然后慢慢深入,
如果只是要達到找作業這種程度,親測只要學習方向正確+夠努力,完全可以在3-4個月完成,
一上來就像吃透這個,吃透那個的專家思想,絕對還沒入門就入土了,
在學習之前,最重要的不是找教程,方向和方法比教程更重要,
很多人以為嵌入式開發就是搞ARM,搞Linux,
實際上,嵌入式開發分很多方向,
主流的方向有:
1.單片機開發
2.Linx驅動/應用開發
3.FPGA,不了解不做講解
這是兩個是目前市場需求最大的,單片機開發和Linux驅動開發偏向硬體,Linux應用開發基本是軟體,
前期一定要先根據個人情況確定好自己要從事的方向,不同的方向學習內容也不一樣,
很多人搞不清方向,以為嵌入式開發又要學單片機,又要學Linux,學了1年門都沒入,
我做了單片機開發10年,對這個行業比較熟悉,就拿這個方向做詳細講解,技術不用學多,深耕一個就夠了,
單片機開發應該是屬于最好入門的,Linux驅動/應用開發相對難點,工資Linux也相對高點,
不過做得越久,我越發現單片機開發其實并不比Linux開發簡單,
我反而覺得資源越豐富的,用起來反而更簡單,
舉個例子,很多做家用消費類產品的芯片都是選非常便宜的,記憶體也非常小,資源非常匱乏,
他們寫程式都是用匯編,算著匯編指令去寫的,
你可以用資源豐富的芯片做,然后用c把代碼寫的很健壯,但是成本絕對比別人高,
哪怕一顆芯片只貴1毛錢,如果一個月出貨10萬個,你就讓企業少掙1萬,
有些做嵌入式Linux開發的看不起做單片機開發的,覺得很簡單,沒什么技術難度,
等你做過研發負責人,你就明白任何一個產品,即便功能再簡單,要做好都是沒那么簡單的,
下面,我來總結下,學習單片機開發正確的學習路徑,

整個學習路徑我分為7步:
1.C語言基本語法
C語言基本語法學習大概需要1-2周時間,這種教程網上已經泛濫了,大多基于上位機的C語言,跟單片機C語言編程用起來還是有點差異,
我們這塊也專門錄制了一套教程,總結了我們這幾年實際開發最常用到的一些語法,可以到小破站找無際單片機編程直接看,

2.基礎電路
這一步走彎路的小伙伴最多,再重申一遍,不用死磕模電,甚至都不用去學,
學習電路最好的途徑就2個,一是開發板,二是專案,
然后通過專案不斷地積累電路,模電負反饋放大電路以后的知識點我在實際作業基本沒用到過,
而且我們定位單片機軟體開發的話,也不需要具備硬體設計能力,只需要看懂電路關鍵輸入輸出就行了,
簡單來說就是單片機通過什么方式控制電路,通過什么介面去采集電路過來的資料就行了,
3.51單片機
我第一次接觸到的單片機是STC89C52RC,也就是現在開發板最常用最經典的一款,
不管你通過哪一款去入手,51單片機我都建議必須學一下,如果你直接學STM32我也不攔你,
學習51單片機的目的是為了讓更好容易地去理解單片機的資源到底是怎么用起來的,怎么通程序式去控制電路的,
相當于為你后續學習別的單片機鋪路,
4.51單片機專案
學完前面3個基礎知識以后,到這一步,先把你前面所學的知識變成實實在在的專案,可以是一些小專案,比如說尋跡小車之類的,可以到某寶找一些DIY套件自己寫程式,也可以找無際單片機編程學習實際產品開發,

這一步非常重要,也容易被初學者忽略,這一步的目的是為了學習實作功能的思維,鍛煉代碼整合能力,這個能力比你會單片機更重要,
5.C語言高級用法
C語言基本語法學完了,也通過專案落到實處了,就需要學習一下C語言的高級用法了,比如說指標、結構體,
這塊也是為下一步學習STM32單片機做鋪墊,STM32的庫是面向物件的思維,如果不懂結構體和指標基本看不懂,
這塊我們無際單片機編程也有原創的、系統的開源教程在小破站,

這套教程是我2019年錄這玩的,本來想靠它掙點錢,后來作業一忙沒空搞,干脆開源出來,
不要以講師的標準去要求我,畢竟當初沒經驗,而且是開源的,
但是課程內容個人認為還是非常有價值了,也是市面上學不到的,看過的評價也比較高,
6.STM32單片機
很多人學習STM32覺得很難,怎么跟51單片機的開發模式完全不一樣,控制一個IO口都這么麻煩,
STM32的資源比51單片機多太多了,暫存器自然也多,為了縮短大家開發周期,所以早期ST推出了韌體庫,
直接調庫就能很輕松把STM32的外設用起來,而不需要關心底層配置了什么暫存器,
STM32學習我認為是會調庫把外設用起來就行了,不用研究這么深,
除非你以后的產品需要你用暫存器去開發,再針對性去研究,
也不用所有外設都學習,可以看我上面那個思維導圖,我為大家總結了最常用的外設,
7.STM32專案
如果你堅持到這個環節,那恭喜你,你已經成功入門了,
接下來的時間,全部放在做專案上面,再去學別的單片機已經沒太大意義了,使用起來都是大同小異,
你現在缺的是功能實作的思路,以及代碼實作的能力,
除了專案,沒有更好的方法,到這一步如果有條件了,一定要舍得花錢投資自己,
找一個行業經驗豐富的人帶你,通過最短的時間去學習別人幾年的精華是很劃算的,
如果條件不允許或者不認可我說的,也可以去找一些開源的專案學習,只是自己摸索比較浪費時間,
還有就是到某寶找一些單片機的專案DIY套件,一般他們會有提供原始碼,可以跟著學習,
最后,祝大家學有所成!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/345743.html
標籤:其他
下一篇:初階資料結構——佇列
