我大學(xué)測控技術(shù)與儀器專業(yè),記得當(dāng)初是大三學(xué)長帶著我做比賽。剛開始,最好找一個學(xué)長幫忙指導(dǎo)一下,從中你能學(xué)到很多包括硬件以及軟件的知識,能少走特別多的彎路。全國大學(xué)生電子設(shè)計大賽,飛思卡爾比賽可以了解一下。先從51單片機入手,買一個開發(fā)版,大概就100-200左右,跟著事例做,現(xiàn)在就動手做,不要覺得現(xiàn)在什么都不會,沒學(xué)過數(shù)電模電,等你什么都學(xué)會了,黃瓜菜都涼了。我當(dāng)時就會一門c語言,學(xué)的還很菜,勉強60分過的,沒學(xué)數(shù)電,模電之類的書(大三才開課)。然后從圖書館借了一本單片機的書看,單純的看書沒什么意義,不動手永遠(yuǎn)停留再原點。好在那是有學(xué)長帶著我們(飛思卡爾東三省一等獎),感謝學(xué)長,我們就打打下手,做做硬件,我那時是負(fù)責(zé)軟件的,說實話毛都不會,就是動手太少了,不過從那次比賽后,我就突然豁然開朗的感覺。期間參加差不多十多次科技競賽,得過幾次省三等獎。你們剛大一,多找學(xué)長指導(dǎo)指導(dǎo),先確定一個方案,即使很粗糙,不要緊,先搞出來再說,然后慢慢改進。不要好高騖遠(yuǎn),直接一步到位,如果粗糙的都搞不出來,你覺得能一下子就做到完美嗎?一定動手做,在做的過程中才能知道自己的不足,才能學(xué)到很多東西。多上一些論壇逛逛,先從基礎(chǔ)的做起,開始學(xué)習(xí)51,有些基礎(chǔ)了,可以學(xué)16位的stm系列或者k系列,甚至更高的32位單片機。祝你們好運!
我覺得我還是可以給你點意見的,我現(xiàn)在大四嵌入式實習(xí),發(fā)現(xiàn)自己會的太少。
如果你想做嵌入式或者單片機這塊的話
首先最基礎(chǔ)c語言,不要覺得自己c語言還不錯了,工作中的很多代碼可能都看不懂,各種函數(shù)指針,指針函數(shù),結(jié)構(gòu)指針,結(jié)構(gòu)體中的結(jié)構(gòu)體指針。如果你c語言很好,那么最起碼他們?nèi)糠庋b好的函數(shù)你可以很快上手。
還有就是單片機基礎(chǔ),真想做單片機編程還是不要用51,之前一個工作多年的前輩推薦的便宜功能強的單片機就是stm8,這個階段將寄存器和庫函數(shù)編程都學(xué)會,然后ADC,中斷,pwm以及一些常用協(xié)議,iic spi uart,這些掌握。
再后面可以用stm32,學(xué)習(xí)一些帶操作系統(tǒng)的編程,這一塊我就不了解了,因為我也不會,但是做嵌入式一定要會。
然后基于你的興趣可以學(xué)一些wifi 藍(lán)牙 zigbee 還有一些通信的協(xié)議.
最后最好還能做一些項目。
有了這些技能,你在實習(xí)找工作的時候,或是應(yīng)屆生找單片機 嵌入式工作的時候就會容易很多。
每次看到大學(xué)生在大學(xué)期間做點有技術(shù)含量的東西,都會非常羨慕,計科畢業(yè)從事嵌入式開發(fā)已經(jīng)十幾年了,在大學(xué)期間學(xué)的第一門編程語言就是C語言,早期的大學(xué)開設(shè)課程基本上C語言為主項,現(xiàn)在隨著高級語言種類的增多,java,python相關(guān)的課程在學(xué)習(xí)期間也漸漸開設(shè)起來了。
學(xué)習(xí)單片機基礎(chǔ)編程語言就是C語言了,要玩轉(zhuǎn)單片機C語言是必備基礎(chǔ),單片機里面對于指針的使用頻度非常高,與單片機相對應(yīng)的就是嵌入式,算是單片機的升級版本,最大的區(qū)別在于是不是有操作系統(tǒng),經(jīng)常寫單片機的人對于中斷或者循環(huán)使用的比較多,一旦涉及到操作系統(tǒng)就會變得有點迷茫,代碼寫起來就顯得沒有那么隨意了,今天不過多的講述嵌入式的概念,單就單片機如何學(xué)習(xí)發(fā)表一下個人的觀點。
如何才能學(xué)習(xí)單片機?
1.單片機必備編程語言C語言
C語言到目前為止還依然是非常靠的住底層編程語言,盡管現(xiàn)在很多人覺得這門編程語言好像距離我們很遠(yuǎn)了,但是看到底層實現(xiàn)的編程語言幾乎除了C語言就是C++,所以想玩單片機繞不開這門編程語言,如何學(xué)習(xí)C語言,C語言從語法細(xì)節(jié)上比較少,正是因為少所以才顯得靈活,記得當(dāng)初剛學(xué)習(xí)C語言弄了幾個月覺得自己能看懂C語言寫的所有代碼了,于是從學(xué)校的圖書館里面借了一本1000頁的linux內(nèi)核書籍看起來了,結(jié)果看了不到100頁進行不下去了,太靈活了沒點實際項目開發(fā)經(jīng)驗很難持續(xù)下去。
最后老老實實回歸到C語言的基礎(chǔ)學(xué)習(xí)上了,C語言主要的知識點屈指可數(shù),有指針,數(shù)組,結(jié)構(gòu)體,函數(shù),遞歸,回調(diào)等基本概念,但真要組合起來使用就會變得非常復(fù)雜,所以C語言學(xué)好主要依靠實踐,學(xué)習(xí)任何編程語言都遵循這種規(guī)律,理論的學(xué)習(xí)總會相對輕松些,真要到項目實踐階段各種不懂的東西就出來了。
2.讀懂手冊
玩單片機其實很大程度上就是讀懂寄存器操作手冊,以及對應(yīng)的操作關(guān)系,一般單片機很少單純的硬件或者軟件,都是集成發(fā)展,什么事情一塊做了。很多做單片機的都是畫著PCB板子,然后再把代碼給搞定了,同時對于芯片手冊進行一遍遍的研究,最后形成一個產(chǎn)品出來,能夠全部把這個流程走下來的最后都會向著嵌入式的方向發(fā)展,然后再把框架性的東西提升一下,在嵌入式領(lǐng)域一樣做的非常出色。
學(xué)習(xí)任何技術(shù)都需要耐得住性子,很多開始階段就想著一口拿下,這都是不現(xiàn)實的事情,慢慢積累慢慢折騰,很多人覺得很多手冊都是英文版本看不懂,其實真要拿出決心去看去學(xué)習(xí),未必真弄不懂,英文基礎(chǔ)很重要,更重要的是學(xué)習(xí)態(tài)度,是不是真的拿出決心來學(xué)習(xí)。
希望能幫到你。
我給你推薦一本書?!秵纹瑱Cc語言應(yīng)用100例第三版》,電子工業(yè)出版社出版。這本書講解了100個例子,通俗易懂,從不認(rèn)識單片機開始,到最后把單片機掌握熟練。里邊的每一個程序都是經(jīng)過仿真和實驗過的,你可以放心使用。大一學(xué)生參加學(xué)校機器人設(shè)計比賽,你這個想法很好,隊伍也組好了,關(guān)鍵要分工。有人編程,有人搞機械設(shè)計,比如說車底版的設(shè)計,需要進行激光切割,或者線切割,看你采用什么材料。電路的設(shè)計,電路設(shè)計需要同學(xué)們?nèi)W(xué)習(xí)電路設(shè)計軟件。那你首先要選一款用什么樣的單片機?單片機隨后把外圍電路設(shè)計好。還要考慮我們用的什么驅(qū)動電機?電機有沒有編碼器?機器人小車上采用什么傳感器?有沒有視覺傳感器?或者光電傳感器,防碰撞傳感器,等等。另外要看一下比賽的要求,要圍繞著比賽的要求不能超出范圍。根據(jù)比賽的要求,我們來設(shè)計我們自己的小車,或者說設(shè)計自己的機器人,完成一定的功能。
大一的學(xué)生就開始參加機器人比賽,這就是以賽促學(xué)。通過比賽來促使你來學(xué)習(xí)單片機。那單片機的課程是在大三的第二學(xué)期,反正我們學(xué)校是在大三的的第二學(xué)期,你們在什么時候開設(shè)這門課程?所以說通過比賽,就迫使你來學(xué)習(xí)單片機單片機的課,需要你們需要你們不斷地去做實驗。把這本教材上的100個例子都要實驗去做一下切身體會。另外要安裝一個仿真軟件進行仿真,先仿真,然后把程序再下到單片機實驗開發(fā)板里邊兒。開發(fā)版可以在網(wǎng)上選購,大概幾十元錢就可以了。另外我們找一些論壇,和視頻。當(dāng)然了,你買了這本教材之后,我們配的有課件,有光盤。光盤里也有一些程序,100個程序。這些程序都是經(jīng)過實驗和仿真過的放心來使用。
最后總結(jié)一下,學(xué)習(xí)單片機需要什么教材?那就是《單片機c語言用100例第三版》電子工業(yè)出版社出版。當(dāng)然了,也有其他的好的教材。你都可以去學(xué)。學(xué)習(xí)單片機你最好先開始學(xué)c51。C51幺也是最簡單的一款,很容易上手。最后一句話,多練、多編程序、多下載、多仿真、多動手。祝你最后比賽取得一個好的成績。
大一我覺得有這個想法就非常不錯了,因為我覺得你時間充沛,所以我建議你就從51單片機的C語言開發(fā)入門,如果手上沒有開發(fā)版的可以去淘寶買一個開發(fā)版,一般賣家都會送視頻教程,你就從跑馬燈開始一個個例程的往下做,還有就是要搞懂原理,搞懂單片機架構(gòu),存儲器空間,每個模塊的原理。針對機器人開發(fā),尤其是要弄明白PWM, 脈沖補獲,串口通訊的原理。你搞懂51單片機后,以后想學(xué)stm32, DSP就很輕松了
郭天翔51單片機學(xué)習(xí)視頻,這個是入門,然后學(xué)習(xí)STM32系列教程
優(yōu)酷上有個stm8的教程,很不錯的,好像是北航的老師做的,建議你從頭到尾看一遍。單片機一定從寄存器學(xué)起,不會寄存器永遠(yuǎn)屬于入門級別。只有了解了寄存器時序這些知識才能更深一步學(xué)習(xí)RTOS系統(tǒng),要不然就只會調(diào)幾個API,遇到復(fù)雜的問題的時候,比如用io模擬通訊端口,就白瞎了。
別學(xué)51,直接上stm32,用cubemx+truestudio,用上位機的思維去寫單片機程序。這樣不一定最好,可是一定是最快可以上手的。
anduino 和 micropython的單片機開發(fā)版推薦學(xué)習(xí)。學(xué)機器人控制沒有必要從0開始,太注重細(xì)枝末節(jié)會讓你寸步難行,很快就失去興趣了!
郭天祥的那本書