征服單片機萬(wàn)能步驟
大學(xué)生活是豐富多彩的,與各種電子元器件與各種開(kāi)發(fā)板為伴也是一件很幸福的事情。在電子方面一直都是長(cháng)江后浪推前浪,青出于藍勝于藍。在此獻上自己學(xué)習單片機的經(jīng)驗以及技巧希望學(xué)弟學(xué)妹在電子的道路上走得更遠,取得的成績(jì)更輝煌。
本文引用地址:http://dyxdggzs.com/article/164527.htm征服單片機萬(wàn)能步驟
知己知彼百戰百勝,學(xué)習幾款單片機后發(fā)現各種單片機有幾個(gè)共同點(diǎn),看門(mén)狗,系統時(shí)鐘,GPIO,定時(shí)器,中斷。這樣就有了給我們攻克的方向了。面對一款單片機,首先要了解他的看門(mén)狗的情況,如果默認情況看門(mén)狗沒(méi)有關(guān)閉,咱就先找去找辦法關(guān)掉看門(mén)狗,記住初來(lái)乍到不要惹狗。玩MSP430單片機時(shí),用IAR建立工程后主函數中關(guān)看門(mén)狗的語(yǔ)句會(huì )自動(dòng)生成。解決了狗的問(wèn)題就要開(kāi)始面對系統時(shí)鐘了,人要活著(zhù)就要心跳,單片機要工作就需要提供系統時(shí)鐘。剛入門(mén)時(shí)候接觸的51單片機沒(méi)有配置時(shí)鐘這個(gè)概念,但是比較復雜的單片機就不同,比如STM32就有龐大的時(shí)鐘樹(shù),MSP430單片機也分主系統時(shí)鐘,子系統時(shí)鐘以及輔助時(shí)鐘。對于一款控制器,時(shí)鐘配置是一個(gè)很重要的步驟。了解了系統的時(shí)鐘才能清楚單片機的性能以及后面定時(shí)器的使用。當我們弄清楚了時(shí)鐘并配置好系統的各個(gè)時(shí)鐘就可以開(kāi)始基本的實(shí)驗。接下來(lái)就是對GPIO的操作。51單片機的IO口操作十分簡(jiǎn)單,但是也有一點(diǎn)是值得注意的:當IO口作為輸入時(shí)先輸出高電平。稍微復雜一點(diǎn)的IO結構操作就會(huì )復雜些,MSP430單片機以及STM32等都有多個(gè)專(zhuān)門(mén)針對GPIO配置的寄存器。但是都有基本寄存器:GPIO模式配置,GPIO輸入寄存器,GPIO輸出寄存器,GPIO復用功能寄存器。弄清楚了IO操作我們便能控制各個(gè)模塊。最后一個(gè)步驟就是攻克定時(shí)器以及中斷。單片機的精華和難點(diǎn)都在定時(shí)器以及中斷這一塊了,當我們把前面幾個(gè)步驟都完成后就得專(zhuān)心來(lái)研究一下這一步驟,定時(shí)器重點(diǎn)的是定時(shí)器的時(shí)鐘源以及計數模式。中斷也是一個(gè)很復雜的方面,這里重點(diǎn)說(shuō)步驟至于如何攻克就得靠自己努力了。學(xué)習單片機就得耐得住寂寞。
不求捷徑但求不走彎路
剛接觸單片機的童鞋大多會(huì )在網(wǎng)上搜索單片機快速入門(mén)寶典之類(lèi)的東西,這類(lèi)標題也是商家或者出書(shū)的最喜愛(ài)的標題。其實(shí)學(xué)習任何東西都不存在捷徑,真正有的是少走彎路?,F在講講如何避免走錯路,走彎路。
1.抱著(zhù)書(shū)啃不如多看PDF手冊。學(xué)習單片機和學(xué)習書(shū)本知識不同,現在市面上好書(shū)很少,大多都是與開(kāi)發(fā)板配套使用或者是理論太強不踏實(shí)。學(xué)習單片機我主張的是多看PDF文檔,這些PDF主要是單片機的官方數據手冊以及相關(guān)資料。找資料方面也得注意,不要一下子找幾十份文檔資料,最后搞的自己也不清楚看哪個(gè)了,所以找資料也要有技巧。單片機種類(lèi)繁多,更新迅速,學(xué)每一款單片機就去買(mǎi)本書(shū)不大可能。書(shū)本上的代碼限制了我們的思想,而數據手冊就不同,我們根據其根本原理以及寄存器來(lái)寫(xiě)出自己的代碼,這樣既了解單片機的底層也鍛煉了自己寫(xiě)代碼的能力。在以后學(xué)習其他單片機也能通過(guò)數據手冊快速掌握。
2.寫(xiě)代碼的三個(gè)階段。對學(xué)習單片機的過(guò)程大致是:抄代碼然后是自己寫(xiě)代碼最后還是抄代碼。剛接觸單片機那會(huì )去兒抄代碼可以理解。如果按照上面介紹的萬(wàn)能步驟學(xué)習,當學(xué)到定時(shí)器的時(shí)候就不應該再去抄代碼了。如果一直抄代碼就不會(huì )有半點(diǎn)進(jìn)步。因為初學(xué)者必須自己去琢磨所有的問(wèn)題。去建立自己的編程風(fēng)格。當建立了自己的單片機風(fēng)格那么就到了所說(shuō)的第二個(gè)階段,在這個(gè)階段算是對程序設計有了一定的感覺(jué),不再是新手了。在第二個(gè)階段后繼續往后學(xué)習會(huì )發(fā)現移植的東西越來(lái)越多了,自己寫(xiě)出來(lái)的底層少了。所以在這個(gè)階段的時(shí)候不要感覺(jué)別扭,要根據不同的時(shí)期調整心態(tài),這就是第三個(gè)階段的抄代碼,也可以說(shuō)是移植底層。
3.單片機不在多而在精。單片機的種類(lèi)很多,不可能都學(xué)過(guò)來(lái)。不是學(xué)到的單片機種類(lèi)越多就顯得技術(shù)越強,單片機之間都有共通點(diǎn),不然也不會(huì )有上面的萬(wàn)能步驟。面對如此多種類(lèi)的單片機我們該采取什么態(tài)度呢。只需要做到精通一款單片機,對單片機的內部了解透徹那么當我們再去學(xué)習另一款單片機的時(shí)候便會(huì )得心應手不會(huì )有很多的困難。
4.讀懂時(shí)序是關(guān)鍵。學(xué)習單片機就肯定會(huì )接觸很多的傳感器,種種傳感器讓我們做出來(lái)的東西都非常有趣。大多單片機愛(ài)好者都喜歡去調試各種傳感器,懂得了這些就可以做出我們身邊比較簡(jiǎn)單的電子產(chǎn)品,非常有成就感。在學(xué)習傳感器的過(guò)程中我們要抓住重點(diǎn)就是時(shí)序圖??炊畷r(shí)序圖,然后更具時(shí)序圖寫(xiě)代碼,這樣的能力對于單片機愛(ài)好者來(lái)說(shuō)是非常重要的。我對傳感器歸類(lèi)大致是這幾種:
傻瓜型: 就是單純檢測高低電平的那種傳感器。比如:光電傳感器
SPI通信:操作復雜一點(diǎn)的傳感器就需要通信來(lái)獲取有用的數據。比如:角度傳感器
IIC通信:這點(diǎn)與上面的SPI通信的傳感器類(lèi)似,只是通信方式不同。比如:MPU6050
串口通信:利用串口來(lái)通信發(fā)送指令。比如GSM模塊
單總線(xiàn)通信:這種通信方式的傳感器對時(shí)序要求很?chē)栏?。比如:DS18B20
單片機的道路是很漫長(cháng)的,也是充滿(mǎn)樂(lè )趣的。當有一天發(fā)現自己以前玩過(guò)的玩具都被自己DIY出來(lái)了,肯定很有成就感。大學(xué)的生活很自由,喜愛(ài)電子的童鞋得沉下心好好的在電子領(lǐng)域鬧騰一翻。大學(xué)與電子相伴度過(guò),學(xué)到了很多也很充實(shí)。留下這點(diǎn)經(jīng)驗送給所有電子愛(ài)好者。
51單片機相關(guān)文章:51單片機教程
單片機相關(guān)文章:單片機教程
單片機相關(guān)文章:單片機視頻教程
單片機相關(guān)文章:單片機工作原理
評論