主流32位單片機(jī)攻略連載:為什么要學(xué)STM32?
先列舉一下大家問得最多的幾個(gè)問題,然后我們一起由問題切入進(jìn)行一些討論。
首先問題1:我是單片機(jī)好還是直接學(xué)STM32好呢?
答:1)首先我們談下目的,你學(xué)習(xí)的最終目的是能夠開發(fā)產(chǎn)品或者成為項(xiàng)目經(jīng)理;而目前市場上的單片機(jī)都基本用C語言了,用匯編進(jìn)行開發(fā)的項(xiàng)目已經(jīng)非常少了
2)在硬件接口這個(gè)環(huán)節(jié)上都一樣:學(xué)51單片機(jī)和學(xué)STM32都是一樣的,主要看其市場上的資料是不是足夠充分,都是調(diào)用硬件的接口,控制I/O,完成相應(yīng)的功能
3)在軟件這個(gè)環(huán)節(jié)上,STM32要強(qiáng)過51單片機(jī):為什么這么說呢?學(xué)STM32它自帶一個(gè)官方的庫,而這個(gè)庫的源代碼是開放的;而51單片機(jī)卻沒有,也就說,當(dāng)你做一個(gè)具體項(xiàng)目的時(shí)候,用STM32開發(fā)項(xiàng)目速度會比用51單片機(jī)要輕松快捷,方便,并且BUG也少。
4)ST的這個(gè)庫專門是由ST官方團(tuán)隊(duì)打造的,是經(jīng)過詳細(xì)認(rèn)真測試過的,例如:你要做處理器支持USB的U盤功能,對51來說,你可能需要在網(wǎng)上去找這樣一個(gè)驅(qū)動(dòng),然后移植到51單片機(jī)上,這樣的缺點(diǎn)是:移植本身就比較累,比較麻煩,并可能有些代碼不一定經(jīng)過驗(yàn)證了的,很難保證沒有BUG;而STM32是官方推薦的庫源代碼,這些功能早就有了,所以用STM32開發(fā)項(xiàng)目做起來非常的輕松,愉快,放心,BUG也少。
5)從選型方面考慮:STM32的性價(jià)比與單片機(jī)相比,雖說單片機(jī)很便宜了,一般市場上就5塊錢左右,而STM32最便宜的是10元多一點(diǎn),但是如果比性價(jià)比,STM32還是很要強(qiáng)過51單片機(jī)很多,為什么呢?因?yàn)槭紫萐TM32是72MHZ的主頻,而51單片機(jī)是10多M,隨著未來產(chǎn)品功能增多了,要求越來越高,可能51單片機(jī)的速度和性能就滿足不了需求,而STM32足夠強(qiáng)勁的主頻,可以延緩這個(gè)問題,使得您的產(chǎn)品周期生命得到延長,而且你有其他新需求也可以靈活增加上來,因?yàn)镾TM32完全有能力負(fù)擔(dān)得起。
問題2:STM32如何才能快速入門?
答:首先就是最好具備基本的電子基礎(chǔ),如果您只有純軟件基礎(chǔ),那就應(yīng)該打扎實(shí)C語言基礎(chǔ),然后弄一塊開發(fā)板,邊學(xué)邊補(bǔ)充硬件電子方面的知識。
因?yàn)檐浖尘叭ダ碚摰膶W(xué)硬件,那是非常枯燥的事情,而且效果也不一定理想;那么此時(shí)你就需要一款比較的板子,板子大與小,功能多與少都不是那么重要,這里最重要的就是要資料豐富,資料豐富,才是最好的;我當(dāng)時(shí)就從同事那里弄了一塊STM32神舟系列的板子,大概花了1,2個(gè)星期就正式入門了。以下是我摘抄的關(guān)于那個(gè)板子的一些特點(diǎn),大家可以看看:
特點(diǎn)1:STM32神舟系列的每款開發(fā)板都有一個(gè)非常詳細(xì)的幾百頁的說明手冊。有很多愛好者反映,買到的開發(fā)板沒有手冊或手冊不全,手冊不詳細(xì),拿到手后沒有什么用,無從下手,那么您可以考慮STM32神舟系列的開發(fā)板,其中神舟IV號的手冊有將近700多頁之多,無論還是從原理還是從代碼都是非常值得閱讀的資料書籍。
特點(diǎn)2:開發(fā)板所帶的例程代碼非常好,易懂和方便移植。很多開發(fā)板的代碼寫得很難閱讀,不規(guī)范,有的甚至是用寄存器實(shí)現(xiàn)的代碼,可讀性非常差,并且不容易重用到新的實(shí)際項(xiàng)目中,而STM32神舟系列的開發(fā)板,全部用ST的專用庫實(shí)現(xiàn),庫代碼全部開源,庫即是將底層寄存器部分代碼全部封裝成函數(shù),融入了軟件設(shè)計(jì)的架構(gòu)理念,想跟蹤到硬件實(shí)現(xiàn)的驅(qū)動(dòng)底層,就跟進(jìn)對應(yīng)的函數(shù)即可看到一切原始代碼,所以您可以有選擇的想看寄存器版本就看寄存器版本,想看函數(shù)庫版本就有函數(shù)庫版本,無論對實(shí)際項(xiàng)目也好,針對學(xué)習(xí)也好,兩全其美!??!
特點(diǎn)3:神舟系列板子因?yàn)橄盗腥?,所以技術(shù)支持以及技術(shù)進(jìn)一步拓展空間大。許多單獨(dú)的開發(fā)板技術(shù)支持根本不行,有的就算是技術(shù)支持不錯(cuò),但是你想更深入一步去學(xué)習(xí),就很難了;而成一個(gè)完整系列的STM32神舟系列是值考慮和選擇的,因?yàn)樵撓盗邪?03RBT,VCT,VET,ZET,以及107VCT,207,4XX系列等多個(gè)系列的開發(fā)板,無論你先學(xué)難,再拖展知識面,還是怎么樣都好,絕對不怕資料少!沒資料?。?!而且各個(gè)系列之間還可以相互借鑒,相互依存,各個(gè)設(shè)計(jì)的高手非常多,大家一起相互交流,產(chǎn)生更多更新碰撞和資料。
特點(diǎn)4:硬件資料豐富。硬件資源以及相關(guān)資料都比同類開發(fā)板要多很多,因?yàn)樵撓盗惺且粋€(gè)組織在維護(hù)和發(fā)展,并不是單獨(dú)的個(gè)人愛好所設(shè)計(jì)的板子,這個(gè)組織走在最前沿,不斷收集行業(yè)內(nèi)的知識,在神舟系列上進(jìn)行驗(yàn)證和實(shí)現(xiàn),所以資料也會越來越多。
特點(diǎn)5:板子的網(wǎng)絡(luò)接口特別加強(qiáng)。許多STM32開發(fā)板沒有考慮到網(wǎng)口這塊以及無線2.4G(WIFI)和315M通信的例程,隨著嵌入式設(shè)備在網(wǎng)絡(luò)方面日益普及,以太網(wǎng)以及無線網(wǎng)都是嵌入式設(shè)備中必不可少的一個(gè)環(huán)節(jié),就算有的嵌入式設(shè)備不需要網(wǎng)口,但是做為提供開發(fā)板的設(shè)計(jì),不可不考慮加強(qiáng)網(wǎng)口這塊的例程,代碼,講解,為各個(gè)開發(fā)愛好者做一個(gè)提前準(zhǔn)備和設(shè)計(jì),而這些接口神舟系列有已經(jīng)直接運(yùn)行的代碼以及詳細(xì)的講解,大家獲得相關(guān)資料,相互參考一下。
問題3:為什么是STM32呢?為什么不是ARM9,ARM11呢?
答:這里有個(gè)誤區(qū),很多同學(xué)如果就僅僅希望入門嵌入式,那就盡量不要選擇ARM9和ARM11,為什么呢?因?yàn)檎T惑太多了,因?yàn)槟阋坏┻x擇ARM9或 ARM11,那么這個(gè)平臺就僅僅linux和wince等操作系統(tǒng)內(nèi)核,驅(qū)動(dòng),應(yīng)用,各種協(xié)議,硬件原理圖,等都有夠?qū)W一年半載了,沒這點(diǎn)時(shí)間,你無法完全掌握,所以并不適合入門,周期太長,難度相對來說較大。
入門最好選擇主頻低一點(diǎn)的處理器,一切都是先掌握好原理,弄明白,弄透徹了,一切就都好辦!所以單片機(jī)中,STM32是目前最最主流的芯片,加上目前 STM32的資料非常的多,所以,最好還是推薦STM32的開發(fā)板做為入門級的板子,學(xué)會之后,即可自己獨(dú)立開發(fā)出各種產(chǎn)品,STM32官方提供的開源代碼庫也是非常好用,將底層的各種匯編,管腳定義都封裝成了各個(gè)功能函數(shù),開發(fā)起來非常方便,快捷!
20年的嵌入式經(jīng)驗(yàn)分享學(xué)習(xí)——來自STM32神舟系列開發(fā)板設(shè)計(jì)師的總結(jié)
首先,如果你有幸看到這篇文章,千萬不要試圖在2個(gè)小時(shí)內(nèi)閱讀完,就算你2個(gè)小時(shí)閱讀完,我相信你也不會理解里面講解的精華之處,我相信,你應(yīng)該將此文章,慢慢品嘗,這絕對是一篇需要品嘗2~3天,再結(jié)合自己過往的經(jīng)驗(yàn),加上自己的思考,我相信會對你不僅僅是技術(shù)能力,甚至包括整體的思維方式都會有一個(gè)非常大的提高。
結(jié)合這篇文章,再結(jié)合STM32神舟系列開發(fā)板一些學(xué)習(xí),可能會更加加深對嵌入式概念的理解。
我寫這篇文章的目的,是用本人20年的嵌入式經(jīng)驗(yàn)呈現(xiàn)給大家一副完整的產(chǎn)品,項(xiàng)目開發(fā)藍(lán)圖,用本人多年經(jīng)的歷總結(jié)了一些教訓(xùn)無私的分享給各位,希望各位今后能站在本人的肩膀之上,少走彎路,多為公司,為個(gè)人多做貢獻(xiàn),那我的愿望就達(dá)到了,也同時(shí)希望能看到大家反饋和回復(fù),留個(gè)腳印,留下你的見解和智慧,為后人乘涼打點(diǎn)基礎(chǔ),先在這謝謝各位了。
那么由此開始我們充滿知識的旅程吧,最重要的一點(diǎn),就是在一個(gè)產(chǎn)品或項(xiàng)目的開發(fā)過程中,如果沒有明確的目標(biāo),那么成功將無從談起,做任何事的第一步必須明確目標(biāo)。
與日常生活中的大多數(shù)事務(wù)一樣,設(shè)計(jì)一個(gè)嵌入式產(chǎn)品的過程也必須從確定目標(biāo)開始,對生產(chǎn)的產(chǎn)品進(jìn)行明確定義。對產(chǎn)品進(jìn)行定義主要是對產(chǎn)品是什么和能有什么功能進(jìn)行描述,其次是在我們的整個(gè)開發(fā)過程中,應(yīng)該要撰寫一些開發(fā)文檔,大概的框架的如下:
評論