沒有51基礎(chǔ),能否輕松掌握STM32?
學(xué)習(xí)STM32之前,掌握51單片機(jī)的基礎(chǔ)是非常重要的,因?yàn)樗婕暗接布拍钊缂拇嫫?、總線和ALU等。即使學(xué)了51單片機(jī)并了解了中斷和定時(shí)器等知識(shí),但如果不理解在51上使用寄存器操作IO口時(shí)所發(fā)生的內(nèi)部過(guò)程,那么當(dāng)面對(duì)STM32的IO口操作時(shí),你可能會(huì)感到困惑。因此,學(xué)習(xí)MCU類的技術(shù)必須從微機(jī)原理和51單片機(jī)開始。
盡管STM32比51先進(jìn)得多,但學(xué)習(xí)類似學(xué)習(xí)高等數(shù)學(xué)一樣,需要先從微積分開始,不可能因?yàn)槲⒎e分已經(jīng)存在了幾百年就認(rèn)為沒有學(xué)習(xí)的必要了?;氐絊TM32,它涉及到一系列的知識(shí)鏈:計(jì)算機(jī)基礎(chǔ)->微機(jī)原理(以及可能的數(shù)字電路和模擬電路)->51單片機(jī)->ARM的STM32。
然而,許多所謂的“由入門到精通”的STM32教程存在一個(gè)問(wèn)題,它們沒有專門解釋各種專業(yè)術(shù)語(yǔ)和概念,有些甚至建議讀者“看不懂可以先跳過(guò)”,給人一種只需讀這本書就能輕松掌握所有知識(shí)的錯(cuò)覺,這是不負(fù)責(zé)任的。因此,看不懂STM32資料的原因很大程度上是因?yàn)椴焕斫馄渲械膶I(yè)名詞。因此,最好的學(xué)習(xí)方法是從基礎(chǔ)開始,逐步接近目標(biāo)。
實(shí)際上,認(rèn)真學(xué)完微機(jī)原理并不需要很長(zhǎng)時(shí)間,你可以嘗試在51單片機(jī)上使用匯編編寫一些小程序,這將有助于更好地理解微機(jī)原理中的概念。當(dāng)你完成微機(jī)原理和51單片機(jī)的學(xué)習(xí)后,對(duì)于單片機(jī)的內(nèi)核和外圍電路有了清晰的框架,再去學(xué)習(xí)STM32時(shí),你會(huì)發(fā)現(xiàn)一切變得清晰明了。剛好,我這里有嵌入式學(xué)習(xí)路線,畢設(shè),各種項(xiàng)目,需要留個(gè)6。
最后補(bǔ)充一點(diǎn),微機(jī)原理中涉及到為支持高級(jí)硬件而采用的特殊方法,例如面向大內(nèi)存的分段管理、MMU、DMA等概念,可以先略過(guò)。對(duì)于眾多匯編指令,重點(diǎn)是理解其中的思路而不是深入研究每個(gè)指令。個(gè)人認(rèn)為,除非你對(duì)計(jì)算機(jī)體系結(jié)構(gòu)非常感興趣,否則沒有必要深入探究這些內(nèi)容,因?yàn)橐话愕腗CU項(xiàng)目不會(huì)用到如此復(fù)雜的外設(shè)。