不修車了!轉(zhuǎn)行做單片機開發(fā)
背景
寫這篇文章的初衷要從最近帶我一個朋友入坑學(xué)習(xí)單片機的經(jīng)歷開始講起;
基礎(chǔ)部分
DAY 1
-
C語言是一本必須掌握的編程語言,看視頻的效率相對來說會高一點,所以我給他推薦了B站 浙大翁愷老師的C語言視頻;
-
紙上得來終覺淺,學(xué)單片機還是重在實踐;為了開源節(jié)流,我把以前吃灰的STM32開發(fā)板拿給他,畢竟資料很多嘛,學(xué)起來也方便;
-
裝cubemx軟件就搞的滿頭大汗了,最后是安裝的JDK版本不對,直接裂開,一個晚上時間沒了;
-
我給他操作了一遍使用cubemx配置自動生成代碼,然后點亮一個LED,整個過程很順利,沒有寫一行代碼,但是我給他解釋代碼的時候,他是完全懵逼的狀態(tài),不知其所以然,這里有十萬個黑人問號臉?。?!
-
看來還是得用51單片機,因為簡單,可以先點亮一個燈,建立起興趣;
-
給他推薦了某寶的一塊51單片機開發(fā)板,隨便找的,功能都大同小異;
sbit LED=P1^0;
void main(void){
LED = 1;
while(1){
}
}
同樣是點亮一個LED,但是這次好像有內(nèi)味道了,看到實驗成果,他笑出了豬叫;
- 剛開始要避免學(xué)習(xí)冗雜的理論,選擇簡單友好的開發(fā)環(huán)境,不是一上來就是啃厚厚的理論書,學(xué)習(xí)工具鏈,學(xué)習(xí)Linux環(huán)境,匯編,這樣學(xué)習(xí)曲線太陡峭,容易產(chǎn)生挫敗感;
- 設(shè)置階段性的學(xué)習(xí)目標,可以拆分成容易完成的小任務(wù),每完成一個任務(wù)都能形成正向反饋,增加信心,從而堅信自己能學(xué)好,能繼續(xù)學(xué)下去;
- 掌握對單片機進行應(yīng)用的方法之后,可以以點帶面,再對知識盲區(qū)進行掃盲,從而拓寬知識的廣度同時,增加深度;
回歸正題
好了,下面言歸正傳,問題是如何系統(tǒng)地學(xué)習(xí)單片機,所以本文著眼于討論如何系統(tǒng)地學(xué)習(xí)單片機,而單片機這門技術(shù)是否有前景,則不做闡述。
-
C語言必須精通,但絕非一朝一夕的事情,需要大量時間去實踐,去寫代碼,去調(diào)試,去做項目,同時還得學(xué)習(xí)理論,通過實踐加深理解,推薦書籍《C 和指針》,《C 陷阱與缺陷》等;
-
語言只是工具,學(xué)會了C語言,你已經(jīng)知道如何砌磚了,但是如何把樓蓋高,蓋牢,蓋的好看呢?
-
再到后面,發(fā)現(xiàn)裸機編程已經(jīng)很難滿足學(xué)習(xí)欲望了,這時候可能會學(xué)習(xí)實時系統(tǒng)了,F(xiàn)reeRTOS,RTThread,都是十分優(yōu)秀的項目;
-
模擬電子技術(shù)和數(shù)字電子技術(shù),如果是EE科班都會開設(shè)這兩門課程的,如果是非科班,零基礎(chǔ),可以自學(xué)一下;
-
原理圖設(shè)計,能看懂數(shù)據(jù)手冊,根據(jù)項目需求進行電子元器件的選型;
-
PCB的Layout,需要學(xué)習(xí)一款EDA軟件,Altium designer用的比較多,Pads,開源的KiCad也不錯,多用用就熟練了,不懂的多問搜索引擎;
總結(jié)
本文簡單介紹了學(xué)習(xí)單片機的技術(shù)路線,分別從軟件角度和硬件角度給出了簡單的方法,單片機開發(fā)是軟硬結(jié)合的,所以軟件的學(xué)習(xí)和硬件的學(xué)習(xí),缺一不可;
筆者能力和水平有限,文中難免存在錯誤和紕漏,請大佬不吝賜教。
—— The End ——