為什么要寫這篇文章呢?這是一篇關于嵌入式入門的文章,因為我在進入嵌入式這個領域之前,也是遇到過非常多非常多的困難,所以呢,希望寫下這篇文章,讓大家看看少走彎路。
首先,我打算先列舉一下大家問得最多的幾個問題,然后我們一起由問題切入進行一些討論。
問題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個星期就正式入門。
問題3:為什么是STM32呢?為什么不是ARM9,ARM11呢?
答:這里有個誤區,很多同學如果就僅僅希望入門嵌入式,那就盡量不要選擇ARM9和ARM11,為什么呢?因為誘惑太多了,因為你一旦選擇ARM9或ARM11,那么這個平臺就僅僅linux和wince等操作系統內核,驅動,應用,各種協議,硬件原理圖,等都有夠學一年半載了,沒這點時間,你無法完全掌握,所以并不適合入門,周期太長,難度相對來說較大。
入門最好選擇主頻低一點的處理器,一切都是先掌握好原理,弄明白,弄透徹了,一切就都好辦!所以單片機中,STM32是目前最最主流的芯片,加上目前STM32的資料非常的多,所以,最好還是推薦STM32的開發板做為入門級的板子,學會之后,即可自己獨立開發出各種產品,STM32官方提供的開源代碼庫也是非常好用,將底層的各種匯編,管腳定義都封裝成了各個功能函數,開發起來非常方便,快捷!
|