日本电影一区二区_日本va欧美va精品发布_日本黄h兄妹h动漫一区二区三区_日本欧美黄色

嵌入式開發(fā)怎么自學(xué)?有靠譜學(xué)習(xí)路線嗎?(嵌入式開發(fā)如何自學(xué))

告訴你一個(gè)殘酷的現(xiàn)實(shí),即便告訴你學(xué)習(xí)方法和路徑,能堅(jiān)持下來(lái)的也寥寥無(wú)幾。

除此以外,還有學(xué)習(xí)過(guò)程中的突發(fā)情況,比如走彎路不知道,碰到問(wèn)題沒(méi)人指導(dǎo)。

我覺(jué)得自學(xué)技術(shù)就是和人性弱點(diǎn)的博弈,枯燥、焦慮、迷茫、無(wú)助都是自學(xué)必經(jīng)的妖魔古怪。

能否取得西經(jīng),更多是對(duì)你魄力和毅力的考驗(yàn),哪怕你走過(guò)的彎路能繞地球一圈,最后還是能到達(dá)終點(diǎn)。

如果你明白這些,還想嘗試,請(qǐng)繼續(xù)往下看,否則不要輕易嘗試,半途而廢還不如不要開始。

以上,是我10年前自學(xué)轉(zhuǎn)行的感悟。

當(dāng)時(shí),從電氣專業(yè)轉(zhuǎn)行到嵌入式單片機(jī)軟件開發(fā),最終找到工作花了4個(gè)多月。

雖然現(xiàn)在門檻不一樣,但是方法可以通用。

說(shuō)到嵌入式開發(fā),大多數(shù)人想到的是ARMLinux、STM32。

這都太廣泛,嵌入式開發(fā)涵蓋的知識(shí)體系太龐大了,做了10年,我依然覺(jué)得我只是嵌入式開發(fā)這個(gè)知識(shí)海洋里的一根針而已。

但這不代表你需要花費(fèi)1年,甚至幾年的時(shí)間才能學(xué)會(huì)。

只要定位清晰,學(xué)習(xí)路徑正確,再加點(diǎn)點(diǎn)堅(jiān)持,3-5個(gè)月完全能從零基礎(chǔ)達(dá)到就業(yè)的程度。

先以找工作成功入行為首要目的,是一個(gè)成年人該有的覺(jué)悟,入行后有工資支撐了,同時(shí)也能在工作中深造,才能形成良性循環(huán)。

千萬(wàn)不要一上來(lái)就想學(xué)成專家,容易餓死。

一、定位

嵌入式開發(fā)分為很多方向,從大方向來(lái)看分為嵌入式硬件開發(fā)嵌入式軟件開發(fā)。

  1. 嵌入式硬件開發(fā)

主要負(fù)責(zé)設(shè)計(jì)產(chǎn)品電路、PCB layout、樣品焊接和調(diào)試、后期生產(chǎn)跟進(jìn)。

學(xué)習(xí)硬件,我個(gè)人感覺(jué)性價(jià)比是比較低的,主要有幾點(diǎn)原因。

①.硬件主要還是要通過(guò)實(shí)物不斷實(shí)踐學(xué)習(xí),不同的電路你要搭建不同的配套硬件測(cè)試你的理論是否正確。

這就導(dǎo)致需要付出的成本比較大,比如說(shuō)要買示波器、萬(wàn)用表、電烙鐵、焊錫、面包板、元器件等等。

還有就是不一定每個(gè)人都有這種學(xué)習(xí)環(huán)境,在自己睡覺(jué)的小房間焊接可不是一件好事。

②.目前具備實(shí)際產(chǎn)品參考意義的硬件教程很少,大多都是幾年甚至十幾年前的老教材,早都用不上了。

③.大多數(shù)普通硬件工程師崗位的工資都低于嵌入式軟件工程師。

④.現(xiàn)在電路集成度很高,動(dòng)不動(dòng)就是芯片方案解決,一般公司很難接觸到核心技術(shù),都是拿別人現(xiàn)成的電路用。

這種一般軟件開發(fā)個(gè)幾年都能自己設(shè)計(jì)電路了。

⑤.硬件抄板代價(jià)小,幾千塊能完完整整把你的硬件電路抄出來(lái),軟件抄襲比較難,需要的成本高。

所以,我一直強(qiáng)調(diào)先把軟件學(xué)好,如果想走全棧再針對(duì)性去學(xué)硬件。

2.嵌入式軟件開發(fā)

嵌入式軟件開發(fā)又分為很多方向,比如說(shuō)主流的有單片機(jī)開發(fā)、Linux驅(qū)動(dòng)開發(fā)、Linux應(yīng)用開發(fā)、安卓應(yīng)用開發(fā)、FPGA/DSP開發(fā)等等。

嵌入式開發(fā)怎么自學(xué)?有靠譜學(xué)習(xí)路線嗎?(嵌入式開發(fā)如何自學(xué))

兩大方向,還細(xì)分很多小方向,每個(gè)方向都是一個(gè)職位,每個(gè)方向所需要的學(xué)習(xí)的內(nèi)容體系都不同。

如果這個(gè)定位你不搞清楚,你就會(huì)覺(jué)得嵌入式開發(fā)很難,又要學(xué)硬件、又要學(xué)STM32、又要學(xué)ARM、又要學(xué)Linux,猴年馬月才能學(xué)完。

二、根據(jù)定位規(guī)劃學(xué)習(xí)路徑

當(dāng)初我處于對(duì)文憑、非本專業(yè)的自卑感,讓我選擇了比較好入門的單片機(jī)開發(fā)方向。

做的越久,我越發(fā)現(xiàn),單片機(jī)開發(fā)并不是和大家想象那樣比Linux方向簡(jiǎn)單。

相反,Linux方向的開發(fā)很多都有現(xiàn)成的庫(kù)可以調(diào)用,而單片機(jī)開發(fā)大多數(shù)要從控制芯片引腳開始。

還有就是一些協(xié)議棧,比如說(shuō)藍(lán)牙協(xié)議棧、Zigbee協(xié)議棧等等,也是非??简?yàn)?zāi)愕木幊坦Φ椎摹?/span>

這些協(xié)議棧有非常多值得學(xué)習(xí)借鑒的地方,你完全可以剪裁、移植、改編、優(yōu)化成自己的程序架構(gòu)為自己產(chǎn)品所用。

嵌入式開發(fā)怎么自學(xué)?有靠譜學(xué)習(xí)路線嗎?(嵌入式開發(fā)如何自學(xué))

現(xiàn)成的系統(tǒng),不管是實(shí)時(shí)操作系統(tǒng),還是Linux,既要做到通用性、又要做到移植性等苛刻條件,所以普遍比較占用微控制器和處理器資源。

而自己寫架構(gòu)就不同,你完全可以根據(jù)自己的產(chǎn)品定制,這樣既保證系統(tǒng)的優(yōu)點(diǎn),又能最大程度減少芯片資源浪費(fèi)。

這比你直接用所謂的RTOS和操作系統(tǒng)水平高多了。

下面,針對(duì)我最熟悉的單片機(jī)開發(fā)方向,根據(jù)當(dāng)下市場(chǎng)對(duì)這個(gè)職位的需求,系統(tǒng)講解下這個(gè)方向的學(xué)習(xí)路徑。

嵌入式開發(fā)怎么自學(xué)?有靠譜學(xué)習(xí)路線嗎?(嵌入式開發(fā)如何自學(xué))

  1. c語(yǔ)言基礎(chǔ)

單片機(jī)支持c語(yǔ)言和匯編語(yǔ)言來(lái)編寫程序,目前主流都用c語(yǔ)言,匯編主要做小家電消費(fèi)類產(chǎn)品,可能你10年都用不上,所以以學(xué)c語(yǔ)言為主。

這塊的教程也泛濫了,但是針對(duì)單片機(jī)的c語(yǔ)言不多,大多數(shù)以做純軟件為基礎(chǔ)講解的。

雖然都是c語(yǔ)言,實(shí)際還是有差別的,比如說(shuō)寄存器配置這些。

無(wú)際單片機(jī)編程有一套針對(duì)單片機(jī)c語(yǔ)言編程的教程,結(jié)合了工作當(dāng)中最常用到的語(yǔ)法,節(jié)約大家學(xué)習(xí)時(shí)間。

教程也是完全開源的,可以到小坡站找無(wú)際單片機(jī)編程直接看。

嵌入式開發(fā)怎么自學(xué)?有靠譜學(xué)習(xí)路線嗎?(嵌入式開發(fā)如何自學(xué))

2. 電路基礎(chǔ)

這個(gè)環(huán)節(jié)進(jìn)坑最多的就是死磕模電,我也走過(guò)這種坑,學(xué)到三極管放大就開始各種數(shù)學(xué)公式,學(xué)不動(dòng)了。

為此也差點(diǎn)放棄,工作久了才發(fā)現(xiàn),書本教程數(shù)學(xué)公式都用不上,三極管實(shí)際應(yīng)用最多的就是開關(guān)作用。

假如是NPN型的三極管,你只要記住B極電壓大于E極電壓0.7V以上,三極管就能導(dǎo)通就行了。

不同型號(hào)的三極管可能不一定是0.7V導(dǎo)通,也有更小的,但實(shí)際電路設(shè)計(jì)要讓三極管導(dǎo)通時(shí),E極一般接地,B極由單片機(jī)引腳控制,電壓都會(huì)遠(yuǎn)遠(yuǎn)大于0.7V。

就是這種細(xì)節(jié)的區(qū)別,如果你去死磕三極管截止、放大、飽和,學(xué)習(xí)效率會(huì)慢幾倍。

3. 51單片機(jī)

很多人說(shuō)51單片機(jī)淘汰了,沒(méi)必要學(xué),純屬外行瞎扯。

越原始的單片機(jī),你越能接觸到底層開發(fā),51單片機(jī)能讓你理解單片機(jī)的底層原理,如何配置使用芯片資源。

STM32單片機(jī)雖然火,但是都是封裝好的庫(kù),做應(yīng)用多一點(diǎn),一般不需要配置寄存器。

這樣,你永遠(yuǎn)無(wú)法知道單片機(jī)的原理。

這個(gè)階段必須要配備一個(gè)開發(fā)板或者通過(guò)項(xiàng)目去學(xué)習(xí)。

單片機(jī)是一門偏向硬件控制的技術(shù),不像純軟件一臺(tái)電腦就行。

建議新手從STC89C52RC單片機(jī)入手,目前市面上開發(fā)板很多也是用這個(gè)芯片做的,燒錄工具便宜、資料教程豐富。

4. 51單片機(jī)項(xiàng)目

這一個(gè)階段最重要,可以說(shuō)比你后面學(xué)STM32還重要。

你熟練使用STM32,不一定有用51單片機(jī)做過(guò)2-3個(gè)項(xiàng)目的人牛逼。

單片機(jī)只是一個(gè)工具,怎么把這個(gè)工具通過(guò)自己天馬行空的想象做成落地產(chǎn)品才是我們最終目標(biāo)。

這個(gè)階段就是檢驗(yàn)?zāi)闱懊鎸W(xué)習(xí)成果最好的時(shí)候,開頭會(huì)比較煎熬,因?yàn)槟X子里沒(méi)有思路,有思路有不知道怎么用代碼去實(shí)現(xiàn)。

最好的方法就是先學(xué)習(xí)別人做的項(xiàng)目,看下別人功能實(shí)現(xiàn)思路是什么,代碼是怎么寫的。

最后自己再根據(jù)自己想法寫一遍,寫完分析一下自己的代碼和別人的代碼各有什么優(yōu)缺點(diǎn)。

就是這煎熬的過(guò)程,別去想捷徑了。

5. C語(yǔ)言進(jìn)階

大多數(shù)51單片機(jī)程序還是比較簡(jiǎn)單的,不用c語(yǔ)言的高級(jí)語(yǔ)法指針、結(jié)構(gòu)體也照樣能實(shí)現(xiàn)功能。

但是后面這些c語(yǔ)言高級(jí)語(yǔ)法的用法就顯得尤為重要了,可以說(shuō)不懂指針、結(jié)構(gòu)體這些基礎(chǔ)知識(shí),你永遠(yuǎn)只能停留在初級(jí)水平。

STM32單片機(jī)的固件庫(kù)也大量使用了指針、結(jié)構(gòu)體。

這塊我們無(wú)際單片機(jī)編程也有配套比較完善的系統(tǒng)教程,其中包括枚舉、指針、結(jié)構(gòu)體、回調(diào)函數(shù)、隊(duì)列算法、任務(wù)管理等非常使用的知識(shí)。

嵌入式開發(fā)怎么自學(xué)?有靠譜學(xué)習(xí)路線嗎?(嵌入式開發(fā)如何自學(xué))

為你后續(xù)學(xué)習(xí)STM32,RTOS打下扎實(shí)基礎(chǔ),教程也是完全開源的,在小破站直接找到。

當(dāng)然如果只是單純學(xué)習(xí)STM32,只需要學(xué)指針、結(jié)構(gòu)體就足夠了,如果你沒(méi)一定的項(xiàng)目經(jīng)驗(yàn),里面很多知識(shí)點(diǎn)可能聽(tīng)不懂。

6. STM32單片機(jī)

我學(xué)STM32單片機(jī)是通過(guò)項(xiàng)目學(xué)會(huì)的,當(dāng)時(shí)公司有新產(chǎn)品,要把原來(lái)NXP的替換掉,價(jià)格太貴了。

有實(shí)際項(xiàng)目驅(qū)動(dòng),你學(xué)習(xí)會(huì)更有針對(duì)性一點(diǎn),效率也更高。

當(dāng)然通過(guò)開發(fā)板學(xué)習(xí)也是可以的,不用把所有外設(shè)資源學(xué)完,只需要學(xué)習(xí)最常用的就可以了,后續(xù)工作需要了再針對(duì)性學(xué)習(xí)也很簡(jiǎn)單。

具體要學(xué)哪些外設(shè),可以參考我上面那個(gè)思維導(dǎo)圖。

7. STM32項(xiàng)目

到這里,已經(jīng)是入門了,剩下的重點(diǎn)就是提高你的編程思維水平。

雖然我們最理想的自學(xué),省錢嘛..

但我建議最快的方法就是找一個(gè)大神帶項(xiàng)目,一個(gè)項(xiàng)目頂你自學(xué)幾年。

我并沒(méi)夸張的意思,因?yàn)樽约鹤隽?0年,其實(shí)真正進(jìn)步最大的也就那2,3年接觸到大神代碼的時(shí)候。

不過(guò)當(dāng)時(shí)他已經(jīng)離職了,完全靠自己死磕,磕了幾年才完全吃透。

如果實(shí)在不舍得花大錢,可以到某寶買一些項(xiàng)目套件自己DIY,比如說(shuō)無(wú)人機(jī)、尋跡小車之類的項(xiàng)目。

不過(guò)這種項(xiàng)目只能讓你熟練編程,不能提升你的認(rèn)知水平,大多數(shù)都是以實(shí)現(xiàn)功能為主。

實(shí)際產(chǎn)品開發(fā)的時(shí)候需要考慮到程序可擴(kuò)展性、可移植性、執(zhí)行效率這些東西。

不知不覺(jué)肝了3000多字,純手打原創(chuàng),如果對(duì)你有幫助,麻煩給我安排個(gè)三連鼓勵(lì)。

最后祝大家學(xué)有所成!

相關(guān)新聞

聯(lián)系我們
聯(lián)系我們
公眾號(hào)
公眾號(hào)
在線咨詢
分享本頁(yè)
返回頂部
垫江县| 会东县| 泉州市| 肃南| 枣阳市| 沈阳市| 红桥区| 新密市| 同心县| 崇信县| 博罗县| 绥棱县| 富裕县| 化德县| 师宗县| 图片| 慈利县| 揭西县| 镇沅| 大田县| 遂昌县| 阜阳市| 红安县| 巴南区| 台北县| 长岭县| 方正县| 远安县| 巴中市| 南丹县| 林口县| 昂仁县| 惠安县| 庐江县| 顺昌县| 察哈| 土默特右旗| 南澳县| 定南县| 阿巴嘎旗| 内丘县|