當(dāng)前位置:首頁(yè) > 公眾號(hào)精選 > 嵌入式大雜燴
[導(dǎo)讀]背景寫(xiě)這篇文章的初衷要從最近帶我一個(gè)朋友入坑學(xué)習(xí)單片機(jī)的經(jīng)歷開(kāi)始講起;我要用梁靜茹給我的勇氣寫(xiě)寫(xiě)如何入坑單片機(jī);我的一個(gè)朋友以前是汽車(chē)電子技術(shù)專(zhuān)業(yè),畢業(yè)之后去做了和汽車(chē)相關(guān)的工作,修了一年車(chē);其實(shí)干一行愛(ài)一行,三百六十行,行行出狀元,確實(shí)挺好的;不過(guò)修車(chē)總給他一種一眼看到頭的感覺(jué)...


背景

寫(xiě)這篇文章的初衷要從最近帶我一個(gè)朋友入坑學(xué)習(xí)單片機(jī)的經(jīng)歷開(kāi)始講起;


我要用梁靜茹給我的勇氣寫(xiě)寫(xiě)如何入坑單片機(jī);


我的一個(gè)朋友以前是汽車(chē)電子技術(shù)專(zhuān)業(yè),畢業(yè)之后去做了和汽車(chē)相關(guān)的工作,修了一年車(chē);


其實(shí)干一行愛(ài)一行,三百六十行,行行出狀元,確實(shí)挺好的;


不過(guò)修車(chē)總給他一種一眼看到頭的感覺(jué)(子非魚(yú),安知魚(yú)之樂(lè)?對(duì)不起,他自己告訴我的);


于是,他跳槽了,找了一份電子工程師的工作;


工作內(nèi)容和我差不多,平日里打打雜;


平淡的日子就這樣重復(fù)著,直到有一天,他說(shuō)想學(xué)單片機(jī);我準(zhǔn)備給他支支招。


基礎(chǔ)部分

DAY 1


第一天,幫他整理了整體的學(xué)習(xí)路線(xiàn),基礎(chǔ)知識(shí)篇;


  1. C語(yǔ)言是一本必須掌握的編程語(yǔ)言,看視頻的效率相對(duì)來(lái)說(shuō)會(huì)高一點(diǎn),所以我給他推薦了B站 浙大翁愷老師的C語(yǔ)言視頻;


    因?yàn)橐曨l還挺長(zhǎng)的,我只推薦他看了比較基礎(chǔ)的部分,做一下課后習(xí)題,掌握基本的語(yǔ)法,if,while,for等語(yǔ)句;


  2. 紙上得來(lái)終覺(jué)淺,學(xué)單片機(jī)還是重在實(shí)踐;為了開(kāi)源節(jié)流,我把以前吃灰的STM32開(kāi)發(fā)板拿給他,畢竟資料很多嘛,學(xué)起來(lái)也方便;


    理想是很豐滿(mǎn):原本計(jì)劃用cubemx st官方的HAL庫(kù)來(lái)進(jìn)行實(shí)踐,畢竟B站還有之前開(kāi)發(fā)板的配套資料也不少;


    現(xiàn)實(shí)卻很骨感:


    • cubemx軟件就搞的滿(mǎn)頭大汗了,最后是安裝的JDK版本不對(duì),直接裂開(kāi),一個(gè)晚上時(shí)間沒(méi)了;


    • 我給他操作了一遍使用cubemx配置自動(dòng)生成代碼,然后點(diǎn)亮一個(gè)LED,整個(gè)過(guò)程很順利,沒(méi)有寫(xiě)一行代碼,但是我給他解釋代碼的時(shí)候,他是完全懵逼的狀態(tài),不知其所以然,這里有十萬(wàn)個(gè)黑人問(wèn)號(hào)臉?。?!


      好吧,畢竟HAL庫(kù)封裝的很不錯(cuò),感覺(jué)對(duì)新手不太友好(前面提到他C語(yǔ)言基礎(chǔ)還不是很扎實(shí));


      后來(lái)我知道他偷偷跑去看結(jié)構(gòu)體和指針的內(nèi)容了。


    • 看來(lái)還是得用51單片機(jī),因?yàn)楹?jiǎn)單,可以先點(diǎn)亮一個(gè)燈,建立起興趣;


  3. 給他推薦了某寶的一塊51單片機(jī)開(kāi)發(fā)板,隨便找的,功能都大同小異;


DAY 2 —DAY N


開(kāi)發(fā)板隔天就到了,看配套視頻,寫(xiě)下了單片機(jī)的hello world,然后燈就亮了;


#include
sbit LED=P1^0;

void main(void){

LED = 1;
while(1){

}
}
同樣是點(diǎn)亮一個(gè)LED,但是這次好像有內(nèi)味道了,看到實(shí)驗(yàn)成果,他笑出了豬叫;


后面給他推薦了郭天祥的視頻《十天學(xué)會(huì)單片機(jī)》;


看視頻,一邊補(bǔ)充C語(yǔ)言知識(shí),一邊對(duì)照著每個(gè)單片機(jī)講解視頻進(jìn)行學(xué)習(xí),視頻中的講解大多比較淺顯易懂,對(duì)于新手比較友好;


把課后習(xí)題一個(gè)一個(gè)做掉,流水燈,數(shù)碼管,串口,定時(shí)器,外部中斷,初步掌握這些基本的外設(shè)的應(yīng)用之后,


他還嘗試做了一個(gè)循跡小車(chē);雖然循跡小車(chē)比較簡(jiǎn)單,但是很有里程碑意義的,這里面涉及到傳感器技術(shù),直流電機(jī)的驅(qū)動(dòng),以及微控制器等技術(shù);


雖然《十天學(xué)會(huì)單片機(jī)》的視頻標(biāo)題略顯浮躁,但是作為入門(mén),他花的時(shí)間遠(yuǎn)比十天要長(zhǎng),所以新手千萬(wàn)不要因?yàn)樽约簩W(xué)得沒(méi)有別人快而焦慮,產(chǎn)生挫敗感,從而自我否定,自我懷疑;


但是需要及時(shí)思考和總結(jié)自己的學(xué)習(xí)方法是否高效,是否有辦法優(yōu)化效率;


最后,按照我個(gè)人的觀點(diǎn)(如有偏駁,請(qǐng)輕拍),對(duì)于零基礎(chǔ)的新手,方法策略是實(shí)踐;


  • 剛開(kāi)始要避免學(xué)習(xí)冗雜的理論,選擇簡(jiǎn)單友好的開(kāi)發(fā)環(huán)境,不是一上來(lái)就是啃厚厚的理論書(shū),學(xué)習(xí)工具鏈,學(xué)習(xí)Linux環(huán)境,匯編,這樣學(xué)習(xí)曲線(xiàn)太陡峭,容易產(chǎn)生挫敗感;
  • 設(shè)置階段性的學(xué)習(xí)目標(biāo),可以拆分成容易完成的小任務(wù),每完成一個(gè)任務(wù)都能形成正向反饋,增加信心,從而堅(jiān)信自己能學(xué)好,能繼續(xù)學(xué)下去;
  • 掌握對(duì)單片機(jī)進(jìn)行應(yīng)用的方法之后,可以以點(diǎn)帶面,再對(duì)知識(shí)盲區(qū)進(jìn)行掃盲,從而拓寬知識(shí)的廣度同時(shí),增加深度;

回歸正題

好了,下面言歸正傳,問(wèn)題是如何系統(tǒng)地學(xué)習(xí)單片機(jī),所以本文著眼于討論如何系統(tǒng)地學(xué)習(xí)單片機(jī),而單片機(jī)這門(mén)技術(shù)是否有前景,則不做闡述。


如何系統(tǒng)地學(xué)習(xí)單片機(jī)?我感覺(jué)很難系統(tǒng)學(xué)習(xí),因?yàn)檫@是一個(gè)多學(xué)科交叉的技術(shù);


另外,如果你用單片機(jī)做不同的項(xiàng)目,應(yīng)用到不同的領(lǐng)域,那有可能會(huì)涉及新的知識(shí)盲區(qū);


所以是掌握好單片機(jī)這個(gè)技術(shù)的理論知識(shí)作為基礎(chǔ)支撐,然后不斷拓展自己的知識(shí)面,不斷提高知識(shí)深度;


下圖是我平時(shí)整理的思維導(dǎo)圖,做的不是很好,都是每次想到一些就補(bǔ)充一些,所以還有些凌亂;


如果覺(jué)得對(duì)你有幫助,可以在[小麥大叔]公眾號(hào)后臺(tái)回復(fù)[技術(shù)思維導(dǎo)圖]領(lǐng)取xmind格式的文件;


貼這張圖的目的是什么呢?只是想說(shuō)明和單片機(jī)相關(guān)的技術(shù)會(huì)涉及到很多東西,所以著眼點(diǎn)應(yīng)該是加強(qiáng)基礎(chǔ)知識(shí)的建設(shè);


基礎(chǔ)編程


  • C語(yǔ)言必須精通,但絕非一朝一夕的事情,需要大量時(shí)間去實(shí)踐,去寫(xiě)代碼,去調(diào)試,去做項(xiàng)目,同時(shí)還得學(xué)習(xí)理論,通過(guò)實(shí)踐加深理解,推薦書(shū)籍《C 和指針》,《C 陷阱與缺陷》等;


  • 語(yǔ)言只是工具,學(xué)會(huì)了C語(yǔ)言,你已經(jīng)知道如何砌磚了,但是如何把樓蓋高,蓋牢,蓋的好看呢?


    這時(shí)候,就需要學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu),算法和設(shè)計(jì)模式,這里推薦《算法導(dǎo)論》,《代碼大全》都不錯(cuò),也是經(jīng)典了,而且這兩本書(shū)也會(huì)長(zhǎng)期陪伴著你;


  • 再到后面,發(fā)現(xiàn)裸機(jī)編程已經(jīng)很難滿(mǎn)足學(xué)習(xí)欲望了,這時(shí)候可能會(huì)學(xué)習(xí)實(shí)時(shí)系統(tǒng)了,F(xiàn)reeRTOS,RTThread,都是十分優(yōu)秀的項(xiàng)目;


    慢慢地學(xué)會(huì)讀這些項(xiàng)目的源碼,讀優(yōu)秀項(xiàng)目的源碼,這是提高很快的途徑;


    這時(shí)候,還不夠,操作系統(tǒng),微機(jī)原理(EE)/計(jì)算機(jī)組成原理(CS),這些書(shū)可以操作起來(lái)了;


    后來(lái)還可能會(huì)接觸到Linux,這是個(gè)龐然大物,LKD,LDD,ULK,這三本書(shū),就夠啃了;當(dāng)然前提還得學(xué)會(huì)Linux環(huán)境下編程,shell腳本,makefile等等等,內(nèi)容太多了,我對(duì)Linux涉獵不是很深入,如果是做應(yīng)用的話(huà),AUPE啃一下,一定會(huì)受益匪淺的;


硬件部分


  • 模擬電子技術(shù)和數(shù)字電子技術(shù),如果是EE科班都會(huì)開(kāi)設(shè)這兩門(mén)課程的,如果是非科班,零基礎(chǔ),可以自學(xué)一下;


    推薦麻省理工的公開(kāi)課《電路與電子學(xué)》,教授講得很好,里面已經(jīng)涵蓋了模電和數(shù)電的內(nèi)容;


  • 原理圖設(shè)計(jì),能看懂?dāng)?shù)據(jù)手冊(cè),根據(jù)項(xiàng)目需求進(jìn)行電子元器件的選型;


    前提是,熟悉最基本的電子元器件,阻容,磁珠,MOS管,二極管等等;


    另外還有功能元器件也需要了解,運(yùn)放,數(shù)字IC,存儲(chǔ)芯片等等;


    但是這還遠(yuǎn)遠(yuǎn)不夠,可能還要板載電源,用LDO,還是DCDC,如果是DCDC還得考慮紋波,噪聲等等,不過(guò)這好像和單片機(jī)又扯遠(yuǎn)了(通常會(huì)有專(zhuān)門(mén)電源工程師),如果沒(méi)有,那你上;


  • PCB的Layout,需要學(xué)習(xí)一款EDA軟件,Altium designer用的比較多,Pads,開(kāi)源的KiCad也不錯(cuò),多用用就熟練了,不懂的多問(wèn)搜索引擎;


    Layout的設(shè)計(jì)規(guī)范可以參考一下華為的設(shè)計(jì)規(guī)范,注意一下板機(jī)的EMC,布線(xiàn),鋪銅,接地方式以及回流面積,如果是低速板,相對(duì)難度會(huì)小一點(diǎn),硬件的坑很深,甚踩;


    最后我想說(shuō)的是最重要的還是實(shí)踐,實(shí)踐,實(shí)踐,自己做個(gè)板子,發(fā)出去打樣,現(xiàn)在打樣還是很便宜了,甚至連SMT都包了,軟件靠精力,硬件靠經(jīng)歷,多爬坑,學(xué)的就多了,會(huì)的也就多了,技術(shù)在于積累。


總結(jié)

本文簡(jiǎn)單介紹了學(xué)習(xí)單片機(jī)的技術(shù)路線(xiàn),分別從軟件角度和硬件角度給出了簡(jiǎn)單的方法,單片機(jī)開(kāi)發(fā)是軟硬結(jié)合的,所以軟件的學(xué)習(xí)和硬件的學(xué)習(xí),缺一不可;


筆者能力和水平有限,文中難免存在錯(cuò)誤和紕漏,請(qǐng)大佬不吝賜教。



—— The End —



本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車(chē)的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車(chē)技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車(chē)工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車(chē)。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車(chē) 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶(hù)希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱(chēng),數(shù)字世界的話(huà)語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱(chēng)"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉