單片機學習路線圖

如果從大二算起,自己接觸單片機已經5年了,這5年一直沒有間斷對單片機知識的學習,今天寫一點自己的感受,拋磚引玉,僅供參考。

首先,學習單片機應該從哪些知識開始。一般人會提出從51單片機,從寄存器操作開始。我覺得掌握基礎知識固然沒錯,不過如果真的只采用這種方法,效果卻不明顯,因為學習沒有目的,沒有方向,我的建議是接觸基本的數電模電基礎后,就可以買一塊開發板試試手,51也好,STM32也好,AVR也好,總之要有一個實戰的檢驗的平臺,不然學習就會索然無味。

最初的學習都是從復制粘貼開始的,不用不好意思,大家都是這樣過來的。況且,能夠通過復制粘貼一次點亮LED的也算是少之又少,大部分人還是難以做到不犯錯誤。比如時鐘沒有配置好,比如沒有正確添加文件的路徑,諸如此類林林總總的小錯誤,也會是你學習過程中的寶貴財富,因為錯誤也是經驗的一部分,如果能通過錯誤舉一反三,那就再好不過了。

有了學習的興趣,也有了實踐的平臺,接下來就需要有一個項目,簡而言之就是要借助單片機去完成一個功能,在實踐中學習,現學現用,用到什么學什么。你不僅越來越發現自己的無知,也越來越發現自己的老練。無知是因為發現自己面對著浩瀚的知識海洋有一種望洋興嘆的渴望與無奈,老練是發現自己通過學習已經領先同齡人掌握了一些知識并且避開了一些坑。在此過程中,我們會吃很多苦,有時候會因為一個語句沒有配置好一整天都悶悶不樂,但當問題解決了之后,你終將會收獲豁然開朗的快意。

此后,你會利用所學的知識做一些力所能及的項目,你會發現單片機基本的外設自己玩了個遍,什么串口,IIC,FLASH都是超簡單。不要著急,也不要驕傲,這個時候你會遇到另外一個挑戰,就是算法。算法的定義很復雜,我也不再贅述,我理解的算法就是解決問題的方法。算法有好有壞,好的算法不僅要求能夠解決問題,而且要又好又快地解決問題,理解累加求和與高斯求和區別的同學就能體會出好的算法是多么重要。不過這個要求太高了,大多數情況下我們只是為了完成任務而實現最基本的算法就已經竭盡全力了。好的算法就像電影明星,我們日常接觸最多的還是普普通通的算法。這些普普通通的算法中夾雜著邏輯關系,會讓我們焦頭爛額,如果你想得到一點建議的話,我會說,永遠不要采用GOTO語句。

走過邏輯和算法這一關后,恭喜你,你又在單片機學習的道路上取得了很大進步,但這還不夠,你會很快發現另外一個問題,你在做項目的過程中會遇到很多很多坑,往往會忽略一些小細節,同樣不用不好意思,這些小細節都是前輩們犯過錯誤的地方,區別就在于你學到這些細節的方式,是通過自己試錯,還是通過參考別人的設計?都可以,都有效,我建議后者,不過如果沒有參考,也要勇敢去探索。

時間終于來到某一天,你做了一個項目,感覺哪里都沒有問題,可是就是沒有按照你的意愿執行。于是你排查原因,從電源到時鐘,從算法到單片機,忙了一大圈還是找不到問題是哪兒,那種焦躁簡直難以用語言表達。直到身邊的前輩給你指出來,“哦,你這個電路板接地不良,造成了大量的干擾,”哦,你這個編程架構不是很好啊,容易造成邏輯錯亂的呀……”,這個時候,你終將會明白,姜還是老的辣,自己需要學習的東西實在太多了,不過別灰心,路漫漫其修遠兮,吾將上下而求索。

總結一下,要學好單片機,需要有數電模電電路基礎,還要有良好的英語水平,還要注意解決問題的算法,同時還要掌握一些硬件PCB知識,祝你在單片機學習的道路上取得更大的收獲。



我是一名從事傳感器開發的電子工程師,很高興在簡書遇到你。如果有什么好的建議和意見,歡迎您和我取得聯系,您可以選擇留言和發送郵件,郵件地址:zz_dxf@163.com

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容