學習嵌入式開發之入門知識

學習嵌入式開發之入門知識

1 嵌入式

嵌入式,一般是指嵌入式系統。嵌入式開發,其實就是對嵌入式系統的開發。嵌入式系統由軟體和硬體組成,通俗地講硬體即CPU、電路板等其它器件共同組成,而軟體部分則是我們所說的程式。

嵌入式系統的核心,就是嵌入式處理器,嵌入式處理器一般分為以下幾個型別:

(1)嵌入式微控制器MCU(Micro Control Unit)

(2)嵌入式微處理器MPU(Micro Processor Unit)

(3)嵌入式DSP處理器(Digital Signal Processor)

(4)嵌入式片上系統SoC(System on Chip)

(5)可程式設計片上系統SoPC(System on a Programmable Chip)

2 微控制器

我們常說的微控制器屬於上述中的嵌入式微控制器(MCU),通常我們學習嵌入式開發其實也是學習微控制器的過程。微控制器

是把中央處理器(CPU)的頻率與規格做適當縮減,並將記憶體(ROM、RAM)、計數器(Timer)、USB、A/D轉換、UART、PLC、DMA等周邊介面,甚至LCD驅動電路都整合在單一晶片上,形成晶片級的計算機。

隨著時代的發展出現了4位、8位、16位、32位微控制器;典型的代表為8位的51微控制器,16位的MSP430,32位的STM32。

3 應用場景

嵌入式的應用場景隨處可見,例如:

家電方面:電視、冰箱、空調、洗衣機等。

電子消費方面:音響、手機、平板等。

工業方面:PLC、控制器、觸控式螢幕、變頻器、伺服等

當然還包含醫療等其它方面。

3 必備知識

(1)程式語言

想要進行嵌入式的軟體開發掌握其程式語言是必不可少的,通常嵌入式的開發採用C語言,因此想要進行嵌入式開發首先第一步就是學習好C語言,對於簡單的應用例如:透過微控制器控制一個LED週期性的閃爍,只要掌握C語言最基本的語法,以及if、while,變數型別的定義就可以編寫出來。當然對於複雜專案的開發還需要掌握陣列、指標、連結串列等知識。對於C語言的學習可以在實踐中慢慢去掌握,一定要動手實踐才能熟練。後續有時間我也會對如何學習好C語言進行一個講解,幫助大家如何更好高效的學習好C語言。

(2)基本電路

光是學好程式語言還不夠,其次是需要能夠看懂一些基本的電路,掌握一定的模電和數電基礎。當然也不需要特別的精通,基本的歐姆定律、電阻、電容等常見元器件瞭解就行。

(3)微控制器的瞭解

學習嵌入式開發對微控制器的瞭解是必不可少的,對於初學者建議大家可以先從51微控制器開始學起,從基本的最小系統開始,(為什麼推薦大家從51微控制器開始學習入門,是因為51是相當經典的一款微控制器比較適合新手入門而且網上資料和教程相當的多)當然如果有經濟基礎的話可以在網上買個51開發板(100元左右)裡面包含各種學習資料,可以達到事倍功半的效果。沒有的話也沒有關係,可以在某寶上自己買洞洞板、電烙鐵和相關的元器件根據網上的資料自己焊接電路搭建學習平臺,這樣透過自己動手實踐可以迅速的成長。等51微控制器掌握得差不多了以後就可以進階學習STM32的微控制器了。STM32有很多系列,建議大家可以學習STM32F1或者STM32F4系列,只要學會了一個對於其它的基本上都會很容易掌握了。

(4)程式設計環境

程式設計環境即編寫程式(C語言)的環境,通常使用較多的是Keil和IAR,這裡我個人感覺Keil比較好用一點;針對Keil程式設計環境對於51微控制器而言使用的程式設計環境為Keil4,STM32微控制器使用程式設計環境為Keil5(MDK)。

4 總結

學習嵌入式並不難,只要熟練掌握了C語言以及一些基本的外設(Usart、SPI、IIC、I/O、AD、DA)基本上就入門了,最難的還是入門階段,因為在這個階段如果沒有人帶領的話會不知道方向不知道重點去學習什麼知識,即使把C語言學習好了可以考試100分但是不知道將其運用到實際的微控制器中轉換成你想要的功能也是沒用的,因此只要入門了了解熟悉整個流程以後透過時間慢慢的積累終有一天會成為一名大神。