為什么要寫這篇文章呢?這是一篇關于嵌入式入門的文章,因為我在進入嵌入式這個領域之前,也是遇到過非常多非常多的困難,所以呢,希望寫下這篇文章,讓大家看看少走彎路。 首先,我打算先列舉一下大家問得最多的幾個問題,然后我們一起由問題切入進行一些討論。 問題1:我是學單片機好還是直接學STM32好??? 問題2:STM32如何才能快速入門? 問題3:為什么是STM32呢?為什么不是ARM9,ARM11呢? 下面我將逐個答復 首先問題1:我是單片機好還是直接學STM32好呢? 答:首先我們談下目的,你學習的最終目的是能夠開發產品或者成為項目經理;而目前市場上的單片機都基本用C語言了,用匯編進行開發的項目已經非常少了 在硬件接口這個環節上都一樣:學51單片機和學STM32都是一樣的,主要看其市場上的資料是不是足夠充分,都是調用硬件的接口,控制I/O,完成相應的功能 在軟件這個環節上,STM32要強過51單片機:為什么這么說呢?學STM32它自帶一個官方的庫,而這個庫的源代碼是開放的;而51單片機卻沒有,也就說,當你做一個具體項目的時候,用STM32開發項目速度會比用51單片機要輕松快捷,方便,并且BUG也少. ST的這個庫專門是由ST官方團隊打造的,是經過詳細認真測試過的,例如:你要做處理器支持USB的U盤功能,對51來說,你可能需要在網上去找這樣一個驅動,然后移植到51單片機上,這樣的缺點是:移植本身就比較累,比較麻煩,并可能有些代碼不一定經過驗證了的,很難保證沒有BUG;而STM32是官方推薦的庫源代碼,這些功能早就有了,所以用STM32開發項目做起來非常的輕松,愉快,放心,BUG也少。 從選型方面考慮:STM32的性價比與單片機相比,雖說單片機很便宜了,一般市場上就5塊錢左右,而STM32最便宜的是10元多一點,但是如果比性價比,STM32還是很要強過51單片機很多,為什么呢?因為首先STM32是72MHZ的主頻,而51單片機是10多M,隨著未來產品功能增多了,要求越來越高,可能51單片機的速度和性能就滿足不了需求,而STM32足夠強勁的主頻,可以延緩這個問題,使得您的產品周期生命得到延長,而且你有其他新需求也可以靈活增加上來,因為STM32完全有能力負擔得起。 問題2:STM32如何才能快速入門? 答:首先就是最好具備基本的電子基礎,如果您只有純軟件基礎,那就應該打扎實C語言基礎,然后弄一塊開發板,邊學邊補充硬件電子方面的知識,因為軟件背景去理論的學硬件,那是非常枯燥的事情,而且效果也不一定理想;那么此時你就需要一款比較的板子,板子大與小,功能多與少都不是那么重要,這里最重要的就是要資料豐富,資料豐富,才是最好的;我當時就從同事那里弄了一塊STM32神舟系列的板子,大概花了1,2個星期就正式入門了。以下是我摘抄的關于那個板子的一些特點,大家可以看看: 關于STM32神舟開發板的特點有哪些呢????? 特點1:STM32神舟系列的每款開發板都有一個非常詳細的幾百頁的說明手冊。有很多愛好者反映,買到的開發板沒有手冊或手冊不全,手冊不詳細,拿到手后沒有什么用,無從下手,那么您可以考慮STM32神舟系列的開發板,其中神舟IV號的手冊有將近700多頁之多,無論還是從原理還是從代碼都是非常值得閱讀的資料書籍。 特點2:開發板所帶的例程代碼非常好,易懂和方便移植。很多開發板的代碼寫得很難閱讀,不規范,有的甚至是用寄存器實現的代碼,可讀性非常差,并且不容易重用到新的實際項目中,而STM32神舟系列的開發板,全部用ST的專用庫實現,庫代碼全部開源,庫即是將底層寄存器部分代碼全部封裝成函數,融入了軟件設計的架構理念,想跟蹤到硬件實現的驅動底層,就跟進對應的函數即可看到一切原始代碼,所以您可以有選擇的想看寄存器版本就看寄存器版本,想看函數庫版本就有函數庫版本,無論對實際項目也好,針對學習也好,兩全其美!!! 特點3:神舟系列板子因為系列全,所以技術支持以及技術進一步拓展空間大。許多單獨的開發板技術支持根本不行,有的就算是技術支持不錯,但是你想更深入一步去學習,就很難了;而成一個完整系列的STM32神舟系列是值考慮和選擇的,因為該系列包含了103RBT,VCT,VET,ZET,以及107VCT多個系列的開發板,無論你先學難,再拖展知識面,還是怎么樣都好,絕對不怕資料少!沒資料!!!而且各個系列之間還可以相互借鑒,相互依存,各個設計的高手非常多,大家一起相互交流,產生更多更新碰撞和資料。 特點4:硬件資料豐富。硬件資源以及相關資料都比同類開發板要多很多,因為該系列是一個組織在維護和發展,并不是單獨的個人愛好所設計的板子,這個組織走在最前沿,不斷收集行業內的知識,在神舟系列上進行驗證和實現,所以資料也會越來越多。 特點5:板子的網絡接口特別加強。許多STM32開發板沒有考慮到網口這塊以及無線2.4G(WIFI)和315M通信的例程,隨著嵌入式設備在網絡方面日益普及,以太網以及無線網都是嵌入式設備中必不可少的一個環節,就算有的嵌入式設備不需要網口,但是做為提供開發板的設計,不可不考慮加強網口這塊的例程,代碼,講解,為各個開發愛好者做一個提前準備和設計,而這些接口神舟系列有已經直接運行的代碼以及詳細的講解,大家獲得相關資料,相互參考一下。 問題3:為什么是STM32呢?為什么不是ARM9,ARM11呢? 答:這里有個誤區,很多同學如果就僅僅希望入門嵌入式,那就盡量不要選擇ARM9和ARM11,為什么呢?因為誘惑太多了,因為你一旦選擇ARM9或ARM11,那么這個平臺就僅僅linux和wince等操作系統內核,驅動,應用,各種協議,硬件原理圖,等都有夠學一年半載了,沒這點時間,你無法完全掌握,所以并不適合入門,周期太長,難度相對來說較大。 入門最好選擇主頻低一點的處理器,一切都是先掌握好原理,弄明白,弄透徹了,一切就都好辦!所以單片機中,STM32是目前最最主流的芯片,加上目前STM32的資料非常的多,所以,最好還是推薦STM32的開發板做為入門級的板子,學會之后,即可自己獨立開發出各種產品,STM32官方提供的開源代碼庫也是非常好用,將底層的各種匯編,管腳定義都封裝成了各個功能函數,開發起來非常方便,快捷! “入門既不難,深造也是辦得到的”,只要你有恒心、有決心,跟隨我們的“連載”一步步走下去,將來就一定能在魅力的電子世界里遨游。 |