今天整個(gè)下午,都在與一個(gè)大三的學(xué)長(zhǎng)討論51單片機(jī)串口通信的一段程序。
看似簡(jiǎn)單,寥寥數(shù)行,卻花了四個(gè)小時(shí),這四個(gè)小時(shí)對(duì)我來(lái)說(shuō)過(guò)的值,給了我很多啟示,所以想寫這篇日志記錄下來(lái)。
本來(lái)在其它的文獻(xiàn)上找到過(guò)類似的程序,后來(lái)又在網(wǎng)上搜到一些例子,然后自已寫出了一段,但調(diào)試就遇到問(wèn)題,都是一些小的卻又解決不了的問(wèn)題,比如輸出的字符串錯(cuò)位,中間有亂碼,從理論上看程序一點(diǎn)問(wèn)題都沒(méi)有,但用起來(lái)就出問(wèn)題,自己實(shí)在解決不了,只好請(qǐng)教學(xué)長(zhǎng)。
問(wèn)過(guò)好多人,都不大熟悉串口通訊,后來(lái)問(wèn)了一個(gè)據(jù)說(shuō)很厲害的學(xué)長(zhǎng),結(jié)果被教育了一通,他教育我,遇到問(wèn)題要自己解決,不要依賴別人幫忙,從一個(gè)方面說(shuō),他的話也確實(shí)對(duì),隨著研究的深入,很多問(wèn)題別人也不懂(事實(shí)上我把周圍的人問(wèn)了一圈,也確實(shí)沒(méi)人懂),只有自己去研究,才能提高能力。
但是,這個(gè)問(wèn)題其實(shí)我已經(jīng)自己研究了一個(gè)星期了,被逼無(wú)奈才去找學(xué)長(zhǎng)的。
下午的事情也能說(shuō)明,如果只靠我自己,估計(jì)再給一個(gè)星期也不行,表面并不復(fù)雜的東西,涉及到的東西實(shí)在是太多了。
下午有個(gè)好心的學(xué)長(zhǎng)來(lái)幫我,他學(xué)的是ARM,雖然對(duì)51不熟悉,但他能解決我的問(wèn)題,給我的啟示是,做研究,基礎(chǔ)的原理一定要學(xué)好,以后即使遇到自己不懂的領(lǐng)域,都可以很容易的去解決,學(xué)長(zhǎng)雖然連51的基本指令都不太熟悉,但他熟悉硬件原理,所以下午的討論過(guò)程中,遇到的很多都是硬件的細(xì)節(jié)問(wèn)題,這必須要思維縝密,熟悉硬件的人才能解決。
比如說(shuō),開始的程序里,格式?jīng)]問(wèn)題,理論也能解釋通,但就是出問(wèn)題,如果不是這位學(xué)長(zhǎng),誰(shuí)能想到是因?yàn)榧拇嫫鞔嬖诜磻?yīng)時(shí)間,而數(shù)據(jù)發(fā)送過(guò)快,導(dǎo)致接收數(shù)據(jù)錯(cuò)位,也很難想到,僅僅少了兩句在合適的位置打開關(guān)閉發(fā)送中斷和接收中斷,就有了那么大的差別,對(duì)于一個(gè)只懂程序,不懂硬件,或者只會(huì)編程,不懂基本原理的人,是不會(huì)想到問(wèn)題出在哪里的。
想起兩星期前,也是遇到電機(jī)不轉(zhuǎn)的問(wèn)題,怎么也弄不好,后來(lái)請(qǐng)了一個(gè)大四的,經(jīng)驗(yàn)豐富的學(xué)長(zhǎng),同樣是本以為簡(jiǎn)單的情況,學(xué)長(zhǎng)調(diào)了好長(zhǎng)時(shí)間,最后斷定是開發(fā)板上的一個(gè)小排阻的問(wèn)題,當(dāng)時(shí)挺吃驚的,這些東西一旦跟硬件聯(lián)系上了,問(wèn)題真的要復(fù)雜十倍,出現(xiàn)問(wèn)題時(shí),程序跟硬件相比真的太簡(jiǎn)單了,這話不假。
還有個(gè)插曲,我去買那個(gè)型號(hào)的排阻,問(wèn)老板多少錢,老板反問(wèn)我要多少,我說(shuō)要一個(gè),老板鄙夷的斜視我,說(shuō)我們都是一包一包賣的,我問(wèn)老板一包有幾個(gè),老板微笑著說(shuō)有兩百個(gè)……
我一直想做科研,但我對(duì)待學(xué)習(xí)的態(tài)度確實(shí)不好,在學(xué)習(xí)單片的時(shí)候,我為了節(jié)省時(shí)間,略過(guò)了基礎(chǔ)知識(shí)的習(xí),直接學(xué)習(xí)我需要的部分,但現(xiàn)在來(lái)看,因?yàn)椴欢A(chǔ),繞彎路花費(fèi)的時(shí)間浪費(fèi)的太多了。這真的是做學(xué)問(wèn)的大忌。
那位學(xué)長(zhǎng)還有一點(diǎn)很讓我欣賞,就是他在查錯(cuò)的時(shí)候,思維的條理性,其實(shí)我也知道,查錯(cuò)能力是科研人員必須具備的能力之一,我知道它很重要,只是相比之下,我還是有些欠缺,還欠缺點(diǎn)條理。
這些需要在以后的時(shí)間里鍛煉。
之前,我寫這個(gè)程序一直停滯不前,要不是那位學(xué)長(zhǎng),我自己是不可能想到如何從硬件方面思考解決辦法的,表面上簡(jiǎn)單的不能再簡(jiǎn)單的程序,涉及到硬件方面就相當(dāng)難了。
這種方面真的是說(shuō)著容易做著難呀。
總結(jié)下,今天提醒我的是一定注意自己查錯(cuò)能力的培養(yǎng),還有對(duì)待基礎(chǔ)知識(shí)的認(rèn)真。我會(huì)好好努力的,希望我未來(lái)可以成為一名合格的科研工作者。 |