如果從大二算起,自己接觸單片機已經(jīng)5年了枣察,這5年一直沒有間斷對單片機知識的學習争占,今天寫一點自己的感受,拋磚引玉序目,僅供參考臂痕。
首先,學習單片機應該從哪些知識開始猿涨。一般人會提出從51單片機握童,從寄存器操作開始。我覺得掌握基礎(chǔ)知識固然沒錯叛赚,不過如果真的只采用這種方法澡绩,效果卻不明顯,因為學習沒有目的俺附,沒有方向肥卡,我的建議是接觸基本的數(shù)電模電基礎(chǔ)后,就可以買一塊開發(fā)板試試手昙读,51也好召调,STM32也好,AVR也好,總之要有一個實戰(zhàn)的檢驗的平臺唠叛,不然學習就會索然無味只嚣。
最初的學習都是從復制粘貼開始的呀打,不用不好意思敦第,大家都是這樣過來的盈魁。況且匣椰,能夠通過復制粘貼一次點亮LED的也算是少之又少诗赌,大部分人還是難以做到不犯錯誤宣鄙。比如時鐘沒有配置好写烤,比如沒有正確添加文件的路徑焰扳,諸如此類林林總總的小錯誤挽荡,也會是你學習過程中的寶貴財富藐石,因為錯誤也是經(jīng)驗的一部分,如果能通過錯誤舉一反三定拟,那就再好不過了于微。
有了學習的興趣,也有了實踐的平臺青自,接下來就需要有一個項目株依,簡而言之就是要借助單片機去完成一個功能,在實踐中學習延窜,現(xiàn)學現(xiàn)用恋腕,用到什么學什么。你不僅越來越發(fā)現(xiàn)自己的無知逆瑞,也越來越發(fā)現(xiàn)自己的老練荠藤。無知是因為發(fā)現(xiàn)自己面對著浩瀚的知識海洋有一種望洋興嘆的渴望與無奈,老練是發(fā)現(xiàn)自己通過學習已經(jīng)領(lǐng)先同齡人掌握了一些知識并且避開了一些坑获高。在此過程中商源,我們會吃很多苦,有時候會因為一個語句沒有配置好一整天都悶悶不樂谋减,但當問題解決了之后牡彻,你終將會收獲豁然開朗的快意。
此后出爹,你會利用所學的知識做一些力所能及的項目庄吼,你會發(fā)現(xiàn)單片機基本的外設自己玩了個遍,什么串口严就,IIC总寻,F(xiàn)LASH都是超簡單。不要著急梢为,也不要驕傲渐行,這個時候你會遇到另外一個挑戰(zhàn)轰坊,就是算法。算法的定義很復雜祟印,我也不再贅述肴沫,我理解的算法就是解決問題的方法。算法有好有壞蕴忆,好的算法不僅要求能夠解決問題颤芬,而且要又好又快地解決問題,理解累加求和與高斯求和區(qū)別的同學就能體會出好的算法是多么重要套鹅。不過這個要求太高了站蝠,大多數(shù)情況下我們只是為了完成任務而實現(xiàn)最基本的算法就已經(jīng)竭盡全力了。好的算法就像電影明星卓鹿,我們?nèi)粘=佑|最多的還是普普通通的算法菱魔。這些普普通通的算法中夾雜著邏輯關(guān)系,會讓我們焦頭爛額吟孙,如果你想得到一點建議的話豌习,我會說,永遠不要采用GOTO語句拔疚。
走過邏輯和算法這一關(guān)后,恭喜你既荚,你又在單片機學習的道路上取得了很大進步稚失,但這還不夠,你會很快發(fā)現(xiàn)另外一個問題恰聘,你在做項目的過程中會遇到很多很多坑句各,往往會忽略一些小細節(jié),同樣不用不好意思晴叨,這些小細節(jié)都是前輩們犯過錯誤的地方凿宾,區(qū)別就在于你學到這些細節(jié)的方式,是通過自己試錯兼蕊,還是通過參考別人的設計初厚?都可以,都有效孙技,我建議后者产禾,不過如果沒有參考,也要勇敢去探索牵啦。
時間終于來到某一天亚情,你做了一個項目,感覺哪里都沒有問題哈雏,可是就是沒有按照你的意愿執(zhí)行楞件。于是你排查原因衫生,從電源到時鐘,從算法到單片機土浸,忙了一大圈還是找不到問題是哪兒罪针,那種焦躁簡直難以用語言表達。直到身邊的前輩給你指出來栅迄,“哦站故,你這個電路板接地不良,造成了大量的干擾毅舆,”哦西篓,你這個編程架構(gòu)不是很好啊,容易造成邏輯錯亂的呀……”憋活,這個時候岂津,你終將會明白,姜還是老的辣悦即,自己需要學習的東西實在太多了吮成,不過別灰心,路漫漫其修遠兮辜梳,吾將上下而求索粱甫。
總結(jié)一下,要學好單片機作瞄,需要有數(shù)電模電電路基礎(chǔ)茶宵,還要有良好的英語水平,還要注意解決問題的算法宗挥,同時還要掌握一些硬件PCB知識乌庶,祝你在單片機學習的道路上取得更大的收獲。
我是一名從事傳感器開發(fā)的電子工程師契耿,很高興在簡書遇到你瞒大。如果有什么好的建議和意見,歡迎您和我取得聯(lián)系搪桂,您可以選擇留言和發(fā)送郵件透敌,郵件地址:zz_dxf@163.com