- 基于STM32的嵌入式系統(tǒng)應(yīng)用
- 孫光
- 1906字
- 2020-06-12 16:18:22
前言
意法半導(dǎo)體公司(ST)作為第一家與Arm公司合作正式出品Cortex-M3內(nèi)核微控制器的半導(dǎo)體器件公司,于2007年推出STM32F1系列微控制器芯片。此后十余年,以STM32為代表的Cortex-M內(nèi)核微控制器逐漸在全球通用32位微控制器市場占據(jù)了主導(dǎo)地位,并不斷向下侵蝕了8位單片機的市場。
為了適應(yīng)微控制器市場的這一發(fā)展趨勢,深圳職業(yè)技術(shù)學(xué)院電子信息工程技術(shù)專業(yè)在2012年開設(shè)了以STM32微控制器為學(xué)習(xí)對象的“嵌入式系統(tǒng)應(yīng)用”課程。毫無疑問,微控制器相關(guān)課程是高職電子類專業(yè)教學(xué)計劃的重要內(nèi)容,目前深圳職業(yè)技術(shù)學(xué)院電子信息工程技術(shù)專業(yè)設(shè)置的微控制器相關(guān)課程體系如下表所示。

在學(xué)校實際教學(xué)以及與兄弟院校的交流過程中,對于以上課程體系的設(shè)置存在一定爭議。有觀點認為,既然目前51單片機的市場空間已經(jīng)大大萎縮,不如直接將STM32作為微控制器教學(xué)的入門課程。
針對此觀點,我校通過社團選修課的形式進行了積極嘗試,發(fā)現(xiàn)即使是選拔成績較好、具有較高學(xué)習(xí)熱情的學(xué)生,也很難直接從STM32入手進行微控制器內(nèi)容的學(xué)習(xí)。
經(jīng)過調(diào)查和分析,我們發(fā)現(xiàn)造成學(xué)習(xí)困難的原因主要有兩個:第一,STM32微控制器本身內(nèi)部結(jié)構(gòu)比較復(fù)雜,學(xué)生感到難以理解;第二,基于STM32的嵌入式編程涉及的C語言知識點過多,學(xué)生在有限的課時內(nèi)難以全面掌握。
另外,經(jīng)過市場調(diào)研,我們發(fā)現(xiàn)雖然51單片機作為通用處理器的市場空間已大為壓縮,但是在很多追求性價比的專用控制器上,51單片機仍舊占據(jù)著非常大的市場份額。
基于以上事實,我們認為51單片機的教學(xué)在高職電子類專業(yè)整個微控制器課程體系中仍是不可或缺的。在一個簡單結(jié)構(gòu)上先進行微控制器的學(xué)習(xí),并以此來掌握C語言編程的基礎(chǔ)知識是比較容易讓學(xué)生接受的。
由此我們明確了STM32課程在整個微控制器課程教學(xué)體系中的定位,就是在“基于51單片機C語言編程”課程的基礎(chǔ)上,使學(xué)生具備面對復(fù)雜對象的嵌入式C語言編程能力。
結(jié)合高職電子類專業(yè)學(xué)生的實際情況,我們針對本書的內(nèi)容設(shè)計確定了以下原則。
1. 以應(yīng)用為中心,有所為有所不為。不糾結(jié)于STM32微控制器的原理細節(jié),不在書中簡單復(fù)制和堆砌STM32微控制器的知識點,而是注重學(xué)生的快速入門和實際編程能力的培養(yǎng)。
2. 在具備基本C語言編程能力的前提下,著重加強在基于STM32的嵌入式C語言編程中常用的宏指令、結(jié)構(gòu)體、指針等內(nèi)容的學(xué)習(xí)。
3. 強化編程規(guī)范的學(xué)習(xí),注重學(xué)生良好編程習(xí)慣和編程風(fēng)格的養(yǎng)成。
4. 教學(xué)項目的內(nèi)容編排落實在一個具體的“帆板角度測量與控制裝置”上,此裝置以全國大學(xué)生電子設(shè)計競賽的賽題為藍本,將STM32目標板作為整個裝置的控制核心,盡可能將STM32微控制器的編程落實到直觀具體的控制對象上,以提高學(xué)生的學(xué)習(xí)興趣,明確課程的學(xué)習(xí)目的。
5. 考慮到一部分不方便使用“帆板角度測量與控制裝置”進行實踐的讀者,本書所有教學(xué)項目都設(shè)計為可以獨立在STM32目標板上完成。
6. 教學(xué)項目的內(nèi)容編排除了關(guān)注STM32微控制器外設(shè)的編程,還根據(jù)實際應(yīng)用的需求,加入了彩色LCD顯示、Wi-Fi串口模塊、物聯(lián)網(wǎng)云平臺的使用等內(nèi)容。
7. 在大部分教學(xué)項目結(jié)束時,都給出了相應(yīng)拓展項目的要求和提示。設(shè)置拓展項目的目的一方面是為了鞏固學(xué)習(xí)效果,另一方面是在實施過程中找出問題,為后續(xù)項目的學(xué)習(xí)做鋪墊。
本書分為基礎(chǔ)篇和應(yīng)用篇兩大部分,教材內(nèi)容按照基礎(chǔ)篇的專題介紹和應(yīng)用篇的實訓(xùn)項目展開,但并不意味著實際教學(xué)需要嚴格按照教材目錄的編排順序。在課時有限的情況下,可以直接依托實訓(xùn)項目展開教學(xué),每個項目的內(nèi)容已經(jīng)足以支撐教學(xué)的進行(項目中的一些知識點是對前面專題內(nèi)容的延伸,如實訓(xùn)項目1中關(guān)于STM32標準外設(shè)庫的精簡結(jié)構(gòu)介紹)。而基礎(chǔ)篇的專題可以有選擇地穿插在實訓(xùn)項目的教學(xué)中,下表列出了推薦的教學(xué)順序(共計64課時)。

關(guān)于本書教學(xué)對象的選擇有兩個問題需要做出說明。
1. 為什么選擇STM32F103系列芯片?
自從2007年ST公司推出第一款Cortex-M3內(nèi)核的STM32F1xx微控制器至今已逾十年,雖然其后ST公司也陸續(xù)推出了基于Cortex-M4內(nèi)核的STM32F4xx微控制器和基于Cortex-M7內(nèi)核的STM32F7xx微控制器,但是從性價比的角度來看,STM32F1xx微控制器仍然是市場的絕對主流,目前仍不斷有新型號推出。在可預(yù)見的相當長一段時間內(nèi),只要對終端設(shè)備的運算能力需求沒有本質(zhì)性的提高,其主流地位仍將持續(xù)。
2. 為什么是標準外設(shè)庫而非HAL庫?
使用外設(shè)驅(qū)動函數(shù)庫進行編程是STM32微控制器編程非常重要的特色,外設(shè)驅(qū)動函數(shù)庫也從標準外設(shè)庫發(fā)展到了更為抽象化并融入了面向?qū)ο笏季S的HAL庫。但是從企業(yè)產(chǎn)品研發(fā)的慣性來看,占據(jù)市場主流地位的STM32F1xx和STM32F4xx微控制器仍然普遍使用標準外設(shè)庫進行編程,這也是本書選用標準外設(shè)庫而非HAL庫進行教學(xué)的主要原因。
本書的適用對象為具備基本單片機和C語言編程知識的高職院校電子與控制類專業(yè)學(xué)生。
本書由孫光擔(dān)任主編,肖迎春、曾啟明擔(dān)任副主編,王靜霞擔(dān)任主審,曾日揚、李堅等為本書實訓(xùn)項目的完善做出了重要貢獻,在此一并感謝。
- Intel FPGA/CPLD設(shè)計(基礎(chǔ)篇)
- 用“芯”探核:龍芯派開發(fā)實戰(zhàn)
- 24小時學(xué)會電腦組裝與維護
- 顯卡維修知識精解
- 數(shù)字道路技術(shù)架構(gòu)與建設(shè)指南
- 電腦常見故障現(xiàn)場處理
- Intel FPGA/CPLD設(shè)計(高級篇)
- 從零開始學(xué)51單片機C語言
- AMD FPGA設(shè)計優(yōu)化寶典:面向Vivado/SystemVerilog
- Camtasia Studio 8:Advanced Editing and Publishing Techniques
- Practical Machine Learning with R
- 基于PROTEUS的電路設(shè)計、仿真與制板
- STM32自學(xué)筆記
- Instant Website Touch Integration
- Corona SDK Mobile Game Development:Beginner's Guide