可能你已經(jīng)學(xué)習(xí)了很久,但是當(dāng)Leader拋給你一個(gè)STM32項(xiàng)目,你是不是依然手足無(wú)措?
有一朋友剛開(kāi)始學(xué)習(xí)的51單片機(jī),后來(lái)轉(zhuǎn)STM32了。主要是跟著網(wǎng)上的在線課程學(xué)習(xí),自己下邊跟著敲代碼。過(guò)程中學(xué)過(guò)各種培訓(xùn)機(jī)構(gòu)出的視頻課程,接觸過(guò)操作系統(tǒng),開(kāi)發(fā)板上的例程都可以做出來(lái)。后來(lái)他又學(xué)習(xí)了PCB繪制,由于在學(xué)校的時(shí)候沒(méi)學(xué)到多少東西,而且不是電子類(lèi)專(zhuān)業(yè),陷入了迷茫,不知道該怎么學(xué)了。
記得在上大學(xué)的時(shí)候,專(zhuān)業(yè)課老師曾反復(fù)叮囑我們“師傅領(lǐng)進(jìn)門(mén),修行看個(gè)人”。這話之后還沒(méi)完,經(jīng)常告誡我們要深入學(xué)習(xí)51單片機(jī)。當(dāng)時(shí)沒(méi)有完全理解他的意思,直到工作若干年之后才知道。
在嵌入式領(lǐng)域,技術(shù)上有所精進(jìn),底層的東西少不了。通過(guò)51單片機(jī)的學(xué)習(xí),可以理解單片機(jī)、SOC、微機(jī)原理相關(guān)的硬件知識(shí)。 當(dāng)工作那會(huì),在一家軍工企業(yè)打工,當(dāng)時(shí)的崗位是嵌入式開(kāi)發(fā)工程師。那時(shí)候,我還是一枚小白,甚至C語(yǔ)言都沒(méi)學(xué)好。一個(gè)來(lái)自華為的老工程師帶著我學(xué)習(xí)、工作。他在華為的時(shí)候主要是做的C語(yǔ)言相關(guān)的開(kāi)發(fā),51單片機(jī)了解一些。
跟他一起做的第一個(gè)小項(xiàng)目是用STM32實(shí)現(xiàn)的。他翻看了一下STM32的相關(guān)demo,幾天之后那個(gè)小項(xiàng)目初見(jiàn)端倪。 這個(gè)項(xiàng)目雖小,卻涉及到了上位機(jī)開(kāi)發(fā)的C#、單片機(jī)開(kāi)發(fā)用的C語(yǔ)言、圖形界面用到的PS以及CAN通信協(xié)議等。 項(xiàng)目完成后,在跟他聊天過(guò)程中,我得知他之前對(duì)于CAN通信、STM32并不熟悉。
What?或許這就是觸類(lèi)旁通的結(jié)果。
實(shí)際上,C語(yǔ)言是非常接近底層的開(kāi)發(fā)語(yǔ)言,也是嵌入式開(kāi)發(fā)的主要開(kāi)發(fā)語(yǔ)言。學(xué)好C語(yǔ)言,不了解底層的微機(jī)原理是不可能的。寄存器、位操作、堆棧、內(nèi)存申請(qǐng)與釋放,這些知識(shí)點(diǎn)也都會(huì)接觸到。 回到本文的題目,做不了項(xiàng)目是因?yàn)橐恢币詠?lái)學(xué)的都是皮毛,沒(méi)有學(xué)到實(shí)質(zhì)的東西。雖然學(xué)了很久,官方手冊(cè)看過(guò)嗎?恐怕一直都是在用標(biāo)準(zhǔn)庫(kù)、HAL庫(kù)之類(lèi)的。
在這里并不是貶低庫(kù)開(kāi)發(fā),其實(shí),庫(kù)開(kāi)發(fā)是一種高效的開(kāi)發(fā)方式。高手也會(huì)用庫(kù)開(kāi)發(fā)STM32項(xiàng)目,但是他們可能會(huì)盡力吃透所用的標(biāo)準(zhǔn)庫(kù)、HAL庫(kù)。開(kāi)發(fā)庫(kù)就好比wheel,是很多工程師智慧的產(chǎn)物。如下圖是封裝好的外設(shè)驅(qū)動(dòng),有必要學(xué)習(xí)一下是怎么實(shí)現(xiàn)的。

做底層本身確實(shí)要復(fù)雜一些,底層軟件工程師的成長(zhǎng)周期確實(shí)要長(zhǎng)一點(diǎn)。
有人可能會(huì)反駁,現(xiàn)在各個(gè)廠家的配置工具都很完善,為什么我不把精力放在應(yīng)用和算法上,而要放著現(xiàn)成的驅(qū)動(dòng)不用,自己手寫(xiě)呢?那你就去安心做個(gè)應(yīng)用軟件工程師,別來(lái)攙和底層。
做單片機(jī)開(kāi)發(fā),就得清楚今后的發(fā)展方向是什么。當(dāng)個(gè)幾年軟件工程師,然后轉(zhuǎn)崗去做管理嗎?
倘若技術(shù)追求高一點(diǎn)的話,你努力的方向一定是系統(tǒng)架構(gòu)師。
而要成為合格的系統(tǒng)架構(gòu)師,還得了解單片機(jī)底層是如何工作的,甚至還得具備相當(dāng)程度的硬件知識(shí),應(yīng)用層的算法只能是錦上添花。
而這些底層,之所以被稱(chēng)之為“底層”,是因?yàn)樗鼈兇_實(shí)就是整個(gè)系統(tǒng)框架里最基礎(chǔ)的部分。好比蓋大樓,這些就是地基。認(rèn)真看官方手冊(cè)、寄存器手冊(cè),每一個(gè)驅(qū)動(dòng)都自己手寫(xiě),一點(diǎn)一點(diǎn)做。同時(shí),學(xué)習(xí)電子元器件、電路原理等硬件知識(shí)。 其實(shí),能堅(jiān)持下來(lái),就已經(jīng)打敗90%的人了,找工作自然也不是問(wèn)題。
審核編輯:黃飛
-
單片機(jī)
+關(guān)注
關(guān)注
6076文章
45494瀏覽量
670258 -
CAN
+關(guān)注
關(guān)注
59文章
3066瀏覽量
472732 -
soc
+關(guān)注
關(guān)注
40文章
4576瀏覽量
229106 -
STM32
+關(guān)注
關(guān)注
2309文章
11162瀏覽量
373404 -
51單片機(jī)
+關(guān)注
關(guān)注
278文章
5714瀏覽量
134262
原文標(biāo)題:為什么STM32學(xué)了很久還是不會(huì)做項(xiàng)目?
文章出處:【微信號(hào):?jiǎn)纹瑱C(jī)與嵌入式,微信公眾號(hào):?jiǎn)纹瑱C(jī)與嵌入式】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
新手求問(wèn)怎樣自己設(shè)計(jì)電路(模電,數(shù)電都學(xué)了)還是不會(huì)
Altium Designer工具軟件如何下載
我畢業(yè)設(shè)計(jì)要這個(gè)課程啊,真悲催,不會(huì)做啊
我畢業(yè)設(shè)計(jì)要這個(gè)課程啊,真悲催,不會(huì)做啊
請(qǐng)問(wèn)下前輩們,在學(xué)了stm32,想學(xué)操作系統(tǒng)得學(xué)其中的什么先ucos嗎還是其他4類(lèi)
學(xué)習(xí)了STM32,你以為就會(huì)做項(xiàng)目了? Why?
任正非:絕對(duì)不會(huì)做有損任何國(guó)家的事情
Stm32學(xué)了好久了,感覺(jué)獨(dú)立做項(xiàng)目還是有力不從心的感覺(jué)?
為什么學(xué)了很久還是不會(huì)做STM32項(xiàng)目
Stm32學(xué)了好久了,為什么做項(xiàng)目還是力不從心?
STM32學(xué)了很久,我還是不會(huì)做項(xiàng)目。
del和unlink有啥區(qū)別啊?為什么String類(lèi)型刪除不會(huì)做異步刪除?
為什么學(xué)了C語(yǔ)言,卻寫(xiě)不出像樣的項(xiàng)目?
STM32學(xué)了還是不會(huì)做項(xiàng)目?
評(píng)論