很多單片機初學(xué)者在與我交流的時(shí)候,總是的一句話(huà)是:我現在是單片機初學(xué)者,我怎樣才能更快的學(xué)好單片機,學(xué)習單片機有市場(chǎng)不。對于這個(gè)問(wèn)題現在就如何學(xué)單片機,如何入門(mén),如何熟練來(lái)談點(diǎn)看法。
下面我先分享一位初學(xué)者的經(jīng)歷及感悟:
本人還是學(xué)生,接觸單片機一年多以來(lái),從最基礎的51開(kāi)始,到更高級點(diǎn)的MSP430,一直到現在剛開(kāi)始上手的STM32,編過(guò)的程序不算多,但加起來(lái)怎么也有上百個(gè)了,做過(guò)的東西仔細數數,能拿出手來(lái)算算的上是個(gè)樣的也不下十個(gè),算是小有所成吧。
但今天,我卻發(fā)現,這一年我一直在走一條歪路。
先說(shuō)一下情況吧,是這樣的,最近同學(xué)幾個(gè)合伙做個(gè)小項目,不算復雜,跟市面上的工程項目完全沒(méi)法比,用難再需要使用的一個(gè)芯片是老師給的,從沒(méi)用過(guò),沒(méi)有歷程,至于一份電子版的數據手冊,一切的一切都只能是從頭開(kāi)始,從底層開(kāi)始,我們幾個(gè)并開(kāi)始從最底層的邏輯時(shí)序、寄存器操作開(kāi)始,但經(jīng)過(guò)幾天的研究,確實(shí)毫無(wú)效果可言。
為此,我們幾個(gè)郁悶了好長(cháng)時(shí)間,開(kāi)始瘋狂的上網(wǎng)搜資料,拷代碼,卻終究是不得而返,還讓老師罵了一頓,因為這個(gè)項目是我們主動(dòng)要求老師放給我們的,結果卻耽誤了工期。
我們幾個(gè)人很受打擊,最終決定大家一起靜下心來(lái)分析分析,到底我們敗在了什么地方?
最后總經(jīng)過(guò)兩天的思考、討論、總結、檢討···,我們發(fā)現了問(wèn)題的所在,想來(lái)想去,這估計是很大一部分初學(xué)者正在面臨的一個(gè)“瓶頸問(wèn)題”。
總結失敗幾點(diǎn)原因:
1、“都是開(kāi)發(fā)板惹的禍”,可以說(shuō)從開(kāi)始學(xué)習單片機,哪怕是最基礎的51、以致后來(lái)的MSP430、ARM,我沒(méi)從未離開(kāi)過(guò)開(kāi)發(fā)板,而且這長(cháng)達一年多的時(shí)間,養成了我們對開(kāi)發(fā)板極大的依賴(lài),盡管自己焊過(guò)51最小系統、繪制過(guò)430最小系統板,但都是參考的別人已有的電路圖,連最基本的電路基本都沒(méi)分析過(guò),為什么要在這幾個(gè)電阻,該加個(gè)多大的,不加會(huì )怎么樣,太大了/太小了會(huì )有什么后果,等等此類(lèi)問(wèn)題,我們從未分析過(guò),全是COPY、COPY、再COPY,以致自己做過(guò)的東西不少,能力卻未曾提高。
2、“全是例程誤導我”,我們買(mǎi)來(lái)的開(kāi)發(fā)板,往往都會(huì )帶有豐富的例程,通常這也是賣(mài)家吹噓、比拼的地方,但就是這些附帶的歷程,讓我們與底層的開(kāi)發(fā)絕緣了,有了例程,我們不用再一個(gè)代碼一個(gè)代碼地敲鍵盤(pán),不用再去研究那些器件的數據手冊、通信接口、寄存器、內部原理、以及很多商家沒(méi)給我們加進(jìn)去的功能,哪怕是將這些程序改到別的地方,我們也不過(guò)是在宏定義里改兩個(gè)引腳配置而已,從未嘗試過(guò)從底層寫(xiě)驅動(dòng)、敲代碼、寫(xiě)函數,從未嘗試過(guò)快平臺移植代碼,開(kāi)發(fā)呢些沒(méi)用過(guò)的功能等等。
3、“現實(shí)環(huán)境太無(wú)奈”,這跟上面兩個(gè)說(shuō)的是不同的方面,我們都是大學(xué)生,大學(xué)里現在吵得火熱的“大學(xué)生就業(yè)難”、“你是考研還是就業(yè)”、“你報XXX培訓班了嗎”“你考四六級證了嗎”等等,好像上大學(xué)就是為了干這些,似乎沒(méi)有這些,你就會(huì )陷入“畢業(yè)即失業(yè)”的困境。面對這些外來(lái)的干擾,越來(lái)越多的學(xué)生坐不住了,我們這些人也一樣,盡管一直在學(xué)習自己的愛(ài)好,但當被人問(wèn)得多了的時(shí)候,心里也難免會(huì )發(fā)毛、會(huì )害怕,從而導致一年來(lái)真正靜下心來(lái)學(xué)這些東西的時(shí)間越來(lái)越少。
大體也就總結怎么多吧,經(jīng)過(guò)這次失敗,也算是教訓深刻吧,再說(shuō)將來(lái)的路還長(cháng),現在發(fā)現這些,應該不算晚吧。
那么,到底如何邁入單片機開(kāi)發(fā)世界
首先,我覺(jué)得有了單片機實(shí)驗板你就要多練習,最好是自己有臺電腦,少下載幾部電影,少網(wǎng)絡(luò )游戲,把實(shí)驗板和電腦連好,安裝上必備的軟件,下載參考程序,并修改參考程序,從最簡(jiǎn)單的交通燈實(shí)驗做起,等你發(fā)現你能控制交通燈,并了解交通的軟硬設計的時(shí)候你已經(jīng)入門(mén)了,你會(huì )發(fā)現單片機是多么迷人的東西啊,這不是在學(xué)習知識,而是在提升自我的價(jià)值。
用途那么廣的交通的設計都不在話(huà)下了,你還會(huì )覺(jué)得你沒(méi)有學(xué)到東西嗎。還會(huì )覺(jué)得自己什么都不會(huì )嗎?計算機編程、電子技術(shù)的專(zhuān)業(yè)知識都用上了啊。
當你編寫(xiě)的程序按你的意愿實(shí)現時(shí),你比做什么事都開(kāi)心,那種學(xué)習的收獲感和成就感還有充實(shí)感是非常難得的,然后讓數碼管亮起來(lái)顯示你所需要的數字。
這兩部分會(huì )了以后,你已經(jīng)不能自拔了,你已經(jīng)開(kāi)始考慮你這輩子要走哪一行了。就這樣學(xué)習,在寫(xiě)程序的時(shí)候你肯定會(huì )遇到很多問(wèn)題,而這時(shí)你再去翻書(shū)找,這其中你會(huì )找你之前學(xué)過(guò)的編程的書(shū),還有數電模電的書(shū),你會(huì )發(fā)現原來(lái)之前學(xué)的知識還是有用的。遇到不懂再去找以前學(xué)過(guò)的書(shū)本查閱這才是 “溫故而知新,可以為師矣”的大道理啊。
知識必須用于現實(shí)生活中,解決實(shí)際問(wèn)題,用單片機設計個(gè)簡(jiǎn)易的家電定時(shí)器、紅外遙控器什么,這樣才能發(fā)揮它的作用。
如果大家有遇到同樣問(wèn)題的、要類(lèi)似迷茫的、要好的建議意見(jiàn)的,歡迎進(jìn)群交流,大家一起共勉。(掃碼進(jìn)單片機開(kāi)發(fā)群交流)
PS本文相關(guān)素材參考自網(wǎng)絡(luò )
聯(lián)系客服