【E問E答】如何系統(tǒng)的學(xué)習(xí)STM32?
本人當(dāng)初學(xué)習(xí)STM32的時(shí)候有一些跟風(fēng)的因素,自以為學(xué)的芯片越多就越厲害 =_=、 其實(shí),學(xué)習(xí)嵌入式重要的是整體的工程思想和項(xiàng)目經(jīng)驗(yàn)積累,說(shuō)到底這些芯片,我感覺學(xué)習(xí)起來(lái)都差不多吧,無(wú)非就是對(duì)內(nèi)資源(寄存器、中斷、定時(shí)器、串口等等),和對(duì)各種外設(shè)的操作而已,掛載的外設(shè)越多,系統(tǒng)會(huì)越復(fù)雜,這時(shí)可能會(huì)用上操作系統(tǒng),同時(shí),如果工程中涉及到各種算法、自動(dòng)控制、采樣、濾波等實(shí)際問題的時(shí)候,不僅會(huì)上操作系統(tǒng),而且還對(duì)數(shù)學(xué)、物理、電路等方面知識(shí)要有較強(qiáng)的功底,對(duì)編程的能力的要求會(huì)更高,此時(shí)就要求對(duì)STM32的各種資源有比較明晰的了解了。
本文引用地址:http://m.butianyuan.cn/article/201705/359060.htm回到問題,題主問:如何系統(tǒng)的學(xué)習(xí)STM32?
(這個(gè)問題,,,講句實(shí)話,以本人的水平,真的不敢強(qiáng)答 =_=,才學(xué)有限,僅僅提幾點(diǎn)建議吧)
建議:
1、要?jiǎng)邮謱?shí)踐,要?jiǎng)邮謱?shí)踐,要?jiǎng)邮謱?shí)踐!
下面有位答主也提到了,工科類的東西光看是不夠的!算法如何實(shí)現(xiàn),自己獨(dú)立設(shè)計(jì)再動(dòng)手去敲一敲就知道了;外設(shè)如何驅(qū)動(dòng),找到芯片手冊(cè),照著時(shí)序圖自己敲一遍;涉及到操作系統(tǒng)部分的內(nèi)存管理與進(jìn)程調(diào)用,找到源碼仔仔細(xì)細(xì)研讀幾遍(自己應(yīng)該寫不出吧 =_=),相信你一定會(huì)很有收獲的,可能我這個(gè)方法比較笨,但是確實(shí)挺實(shí)用的,個(gè)人覺得。
2、準(zhǔn)備好資料與開發(fā)板
相信很多人都有這樣的意識(shí)吧,學(xué)一款芯片首先想到的是買一塊開發(fā)板,對(duì)的,沒錯(cuò)!巧婦難為無(wú)米之炊嘛,這里推薦兩本書《C和指針》、《Cortex-M3權(quán)威指南》和《STM32庫(kù)開發(fā)實(shí)戰(zhàn)指南》網(wǎng)上都有PDF版本,結(jié)合自己的開發(fā)板配套的視頻教程(某火的講的就不錯(cuò),需要的話私信發(fā)給你),先要理解透徹,然后自己獨(dú)立去敲一敲,觸類旁通,例子上給出的都不會(huì)很難,知識(shí)的拓展很重要,就是舉一反三。還有,不懂得話就多去各大論壇大神虛心請(qǐng)教,論壇里有很多經(jīng)驗(yàn)帖子值得學(xué)習(xí)。
3、庫(kù)開發(fā)與寄存器開發(fā)?
現(xiàn)在STM32入門門檻都不高,稍微有點(diǎn)C語(yǔ)言和單片機(jī)基礎(chǔ)的都能學(xué),有人說(shuō):寄存器操作那么復(fù)雜難懂,那一堆寄存器名字都記不住,,,那寄存器開發(fā)是不是就不重要了?顯然不是,我會(huì)說(shuō)大牛與菜鳥的卻別就在這兒?盡管我也很菜。。。建議:庫(kù)開發(fā)為主,看寄存器是為了理解實(shí)現(xiàn)的原理,所以寄存器部分不能丟了。有余力可以深入學(xué)習(xí)下,這對(duì)M3內(nèi)核的理解很有幫助,以及后面ARM系列芯片的學(xué)習(xí)都很有幫助。
4、多做東西。在實(shí)際工程項(xiàng)目中去鍛煉能力
題主才大一,若對(duì)這一塊感興趣的話,可要把51單片機(jī)的知識(shí)深入透徹地學(xué)扎實(shí)喲,這是基本功。盡量爭(zhēng)取加入實(shí)驗(yàn)室,跟著學(xué)校實(shí)驗(yàn)室的老師、學(xué)長(zhǎng),學(xué)姐,并積極參加校內(nèi)外組織的各種比賽,如電賽、全國(guó)STM32大賽,飛思卡爾智能車,四旋翼等等。一開始不懂沒關(guān)系,只要他們不嫌棄你,積極好學(xué)、不要怕苦!(在實(shí)驗(yàn)室里要謙虛、好學(xué)、低調(diào)啊,切勿裝逼!否則被打臉是很慘的,別問我怎么知道的 =_=........),有條件的話,可以組建團(tuán)體去接外面的項(xiàng)目,當(dāng)然要經(jīng)過老師同意,或者代做畢業(yè)設(shè)計(jì)也是條財(cái)路 【 手動(dòng)斜眼】
5、勤總結(jié),有整體思想。形成自己的總結(jié)文檔、代碼風(fēng)格
可能很多人都沒有這個(gè)習(xí)慣,包括當(dāng)初本人自己,拿到一個(gè)課題或者項(xiàng)目的時(shí)候,大概寫一下流程,就開干,途中遇到很多問題,程序改了又改,從v1.0改到v10.0都還有BUG,,,究根到底,還是自己學(xué)得不夠透徹不夠扎實(shí),沒有一個(gè)整體的概念,知識(shí)零散雜亂,不成體系。有時(shí)候,程序框架、流程都沒有錯(cuò),就因?yàn)闀r(shí)鐘PLL配置上的沖突,導(dǎo)致一個(gè)禮拜BUG找不出來(lái),,,所以,形成良好的編程習(xí)慣、勤寫注釋、善于總結(jié)真的很重要!最好能形成文檔,這絕對(duì)是最好的經(jīng)驗(yàn)積累形式!
評(píng)論