單片機初學者如何快速成為大神?老司機給你指路
- 2020 年 3 月 17 日
- 筆記
我們人類懂的是人類的語言(漢字),單片機它懂的是機器語言。人通過學習可以懂英語,德語,還可以學懂C語言,彙編語言。怎麼用這些人類學會的語言轉換為單片機懂的機器語言呢,這就是學習單片機的核心部分—-編程。編程的工具就是開發環境,說白了就是個寫程式碼的軟體,由軟體來把我們人類的語言翻譯為機器語言給單片機識別。現在我們推薦大家還是學C語言,優點就不說了,百度可以找到一大堆。今天的主題就是我們如何來學這個C語言,在此特指單片機的C語言啊,更準確的說是如何來學習單片機這門手藝?

回到主題,小代在此呢總結了學習單片機的六個步驟,這幾個步驟是小代自己覺得這樣說比較好,可能也不全對,大家看看就好。
一,初步了解及選型
在學單片機之前,我們首先得去了解下,什麼是單片機,它可以幹些什麼,有些什麼類型和型號。有很多同學在群里問問題時就說我們這程式調不通,有大神看看嗎?這樣的問題神仙都沒法給你看,鬼知道你的程式是什麼程式啊,程式猿也不是萬能的,他會的也只能是一方面,全部程式都會的程式猿也沒多少水平。說遠了,繼續回來,我們學習單片機呢,小代推薦還是得有個自己的開發板,這個開發板不要多漂亮,適用就好,可以自己用洞洞板焊接,可以TB買,可以招師哥師姐買個二手的,不要多少外設,主要看單片機主控晶片的資源。當你對單片機又大概的了解後,自己就會選擇開發板了,當你學完基礎後,你會發現自己做一塊發開板那才是最實用的,此時你會發現開始買開發板時候花的幾百大洋就是白花。最後說一點,開發板一定要有影片教程和程式碼常式,而且教程和常式必須和板子配套,初學者連電阻電容都分不清,資料不配套還要這裡換那裡的,你學著很吃力,打擊積極性很厲害的。對初學者來說,小代還是推薦STC的51單片機,現在的15W系列是比較強大的,一般的設計項目都能夠完成,不要再去學什麼STC89/90的爺爺輩的晶片了,STC官方都放棄了的晶片。TB上還有多少黑心商家用來忽悠初學者。選STC的一個最大的好處就是官方資料全部都有中文的,這是英語不好的小夥伴的福音啊。

二,複製粘貼
有了之前的初步了解,再有了自己的開發板和教程。現在我們就開始學習吧。這裡小代叫「複製粘貼」,就真的是複製粘貼。這個過程是你學會用編譯軟體的一個過程,學習程式碼知識,C語言基礎的一個過程。具體怎麼操作,下面慢慢說,第一、學會下載程式到單片機,這裡需要下載器和配套軟體。現在好多晶片都可以直接用串口下載了,直接一個USB轉串口就可以完成,需要在線調試的除外。直接把常式下載進單片機去看效果,也算是測試開發板吧,每個都下載進去玩玩,玩不壞的。在此再說一點,選擇開發板,最好是所有介面都是活動的,這樣你在學單片機編程的過程中還能學到電路設計知識。下載完常式後該真正的複製粘貼了,自己新建工程,完了複製常式進來編譯下載,完了再修改程式里的參數,再編譯,再下載測試。有些參數是可以修改了看到實際的效果變化的,有些參數修改後可能導致程式直接無法運行,此時就需要我們思考了,為什麼這個參數可以改,結合修改後的測試效果,分析此參數是幹什麼用的;再看不能修改的參數,為什麼不能修改。到此時你應該能基本讀懂常式了,用的什麼語句,某個函數是做什麼用的。完成這些,那你此階段算是過關了。

三,依葫蘆畫瓢
到了這個階段,你會對單片機編程有個初步的了解,接下來就是看著常式,自己一字一句的敲進程式碼去,不要複製粘貼了,就算你照搬常式的程式碼都可以,敲完再編譯下載,看能否和常式一樣,到這會有很大一部分同學是編譯不過的,此時你還調試程式了,結合軟體的提示,找到問題並解決。此時的問題大多是大小寫問題,關鍵字問題和一些簡單的拼寫錯誤。當你解決了這些問題後會有很大的成就感的。
到此,此步還沒完,接下來你該做的是修改程式的寫法,判斷語句,循環語句,分支語句,單片機編程不在乎這幾種語句。比如常式用for語句寫,那你用while語句寫,用if語句寫,只要實現了功能就行。把基礎的單片機資源都這樣寫一遍,你的編程能力會有質的飛躍。
四,獨立行走
到此階段,說明你基本入門了,步入正軌了,這時你學起來會輕鬆很多。獨立行走,這就是說從此你要脫離常式了,什麼程式碼都要你自己寫了,不能再複製了,不能再看著常式了,要自己走了。此時你寫的程式碼不能太簡單了,不能再去寫上一階段就能完成的程式了,可以自己寫點綜合性的實驗了,比如按鍵控制流水燈,秒錶,時鐘等。

五,跌倒再爬起
這個階段其實是上一個階段都後續問題。在你「獨立行走」的過程中,肯定會「跌倒」。自己寫的程式碼編譯不過,或者是幾個簡單的程式合在一起後就不能得到想要的效果,這些都是此階段遇到的問題。遇到這些問題時,切勿急躁,要有耐性,你第一次「獨立行走」「跌倒」那是正常的,可能一個問題幾天都解決不了。這個時候可以到論壇,百度,Q群里去尋找幫助,我們的Q群:300384358,歡迎大家進來交流。在此提醒大家,提問也是一門學問,在提問之前,你要對你的問題有思考,你是在用什麼晶片來做什麼?現在的現象是什麼?遇到的問題是什麼?這樣大神也好,草鳥也好只要是感興趣的都會和你討論分析下,其實這個時候大多是思維的固定模式,局外人可能一看就找到問題。切記在群里或者論壇里複製粘貼大段的程式碼,這樣的程式碼99%的人不會去看,再說程式調試是需要軟體和硬體結合調試的,好多編譯不過的程式軟體都會有提示,一般都能找到問題。通過這些方法後解決了一個問題,那你的綜合素質又是一次質的飛躍。這樣的問題會在你每次自己寫綜合性程式里遇到,「跌倒」了就自己在別人的攙扶下站起來,那你就真的會自己走了。
六,飛升上神
到這個階段,你離做大神已經不遠了。差的只是一點經驗而已。到這裡,你可以寫大型的程式碼了,可以自己設計個心怡的小禮物送給女神了,女神會被秒殺的。這裡說到的設計,那是需要你從硬體電路設計開始,到板子的焊接製作,程式的編寫及調試,最後完成自己預想的功能,或者可以做更多的功能上去。多做這樣的東西,拿下心怡的女神不在話下,自己也會輕鬆飛升上神,這樣一舉兩得的事,何樂而不為呢。
