嵌入式系統(tǒng)原理及應(yīng)用——基于STM32和RT-Thread
定 價:55 元
叢書名:普通高等教育電子信息類系列教材
- 作者:胡永濤
- 出版時間:2023/9/1
- ISBN:9787111733003
- 出 版 社:機械工業(yè)出版社
- 中圖法分類:TP360.21
- 頁碼:
- 紙張:膠版紙
- 版次:
- 開本:16開
本書以意法半導(dǎo)體(ST)的STM32L431系列微控制器為硬件核心,采用裸機開發(fā)和RT-Thread操作系統(tǒng)開發(fā)兩條主線貫穿工作原理與實踐應(yīng)用,層層遞進地介紹嵌入式系統(tǒng)的開發(fā)設(shè)計方法。全書共13章。第1~6章介紹STM32裸機開發(fā),包括嵌入式系統(tǒng)概述、STM32硬件及軟件基礎(chǔ)、STM32通用功能輸入輸出、STM32外部中斷、STM32定時器/計數(shù)器和STM32通用同步異步通信。第7~12章介紹RT-Thread操作系統(tǒng)開發(fā),包括RT-Thread操作系統(tǒng)基礎(chǔ)、RT-Thread線程管理、RT-Thread線程間同步、RT-Thread線程間通信、RT-Thread設(shè)備驅(qū)動和RT-Thread軟件包。兩種開發(fā)環(huán)境均適用于ST全系列微控制器,并且屏蔽了不同芯片的差異,用戶掌握了STM32L431系列微控制器即掌握了ST全系列微控制器。第13章介紹基于STM32及OneNET的智能家居系統(tǒng),通過綜合應(yīng)用案例,讀者可以快速掌握基于STM32及RT-Thread的嵌入式系統(tǒng)設(shè)計與開發(fā)的方法。
本書配有大量源于工程項目的應(yīng)用實例,所有實例均經(jīng)過調(diào)試和測試,可直接移植應(yīng)用。此外,本書各章均配有思維導(dǎo)圖和思考與練習,幫助讀者鞏固基礎(chǔ)知識,提高綜合應(yīng)用能力。
本書可作為普通高等院校電氣、自動化、電子信息、機器人等專業(yè)的教材。本書配有以下教學資源:電子課件、源代碼、教學大綱、視頻。選用本書作教材的教師請登錄wwwcmpeducom注冊后下載,或加微信13910750469索取。
STM32系列微控制器是ST公司生產(chǎn)的基于Cortex-M內(nèi)核的嵌入式微控制器,具有外設(shè)豐富、集成度高、外圍電路簡單等優(yōu)點,是目前應(yīng)用最為廣泛的微控制器之一。因此,基于STM32的嵌入式系統(tǒng)開發(fā)是目前眾多高等院校電氣、自動化、電子信息、機器人等專業(yè)學生必須掌握的技術(shù)之一。ST公司提供了用于STM開發(fā)的集成開發(fā)工具STM32CubeIDE,降低了學習門檻,開發(fā)者利用STM32CubeIDE可快速掌握STM32裸機開發(fā)的方法,設(shè)計開發(fā)簡單的嵌入式產(chǎn)品。然而,隨著物聯(lián)網(wǎng)、云計算、大數(shù)據(jù)、人工智能等高新技術(shù)的快速發(fā)展及廣泛應(yīng)用,單純地掌握裸機開發(fā)方法已不能滿足技術(shù)發(fā)展及企業(yè)用人需求,因此本書在STM32裸機開發(fā)的基礎(chǔ)上,詳細介紹基于RT-Thread操作系統(tǒng)的嵌入式系統(tǒng)開發(fā)方法。RT-Thread是上海睿賽德電子科技有限公司推出的一款開源的嵌入式實時操作系統(tǒng),具有完全的自主知識產(chǎn)權(quán),經(jīng)過近20年的沉淀,已演變成一個功能強大、組件豐富的物聯(lián)網(wǎng)操作系統(tǒng),是目前開發(fā)者最多、裝機量最大、社區(qū)最活躍的國產(chǎn)嵌入式實時操作系統(tǒng)之一。開發(fā)者利用睿賽德提供的集成開發(fā)工具RTThread Studio可方便快速地開發(fā)穩(wěn)定、可靠、復(fù)雜的嵌入式產(chǎn)品。本書以STM32L431RCT6為硬件平臺,介紹STM32系列微控制器基本外設(shè)及RT-Thread操作系統(tǒng)主要功能的工作原理及應(yīng)用方法,由于集成開發(fā)環(huán)境屏蔽了不同型號微控制器的差異,讀者掌握了STM32L431RCT6后,即可利用任意型號的STM32微控制器設(shè)計開發(fā)嵌入式系統(tǒng)。
本書內(nèi)容可分為STM32裸機開發(fā)、RT-Thread操作系統(tǒng)開發(fā)和綜合應(yīng)用三部分。STM32裸機開發(fā)包括第1~6章:前兩章介紹了嵌入式系統(tǒng)及STM32微控制器相關(guān)基礎(chǔ)知識,如嵌入式系統(tǒng)基本概念、軟硬件架構(gòu)、STM32微控制器最小系統(tǒng)、裸機開發(fā)環(huán)境搭建等;第3~6章分別針對STM32核心外設(shè)GPIO、EXTI、TIM和USART,闡述其內(nèi)部電路結(jié)構(gòu)及應(yīng)用方法,并配有相應(yīng)的應(yīng)用實例及詳細的開發(fā)過程。RT-Thread操作系統(tǒng)開發(fā)包括第7~12章:第7章介紹了RT-Thread操作系統(tǒng)基礎(chǔ);第8~10章為RT-Thread操作系統(tǒng)的內(nèi)核功能,詳細介紹了線程管理、線程間同步和線程間通信的工作原理及應(yīng)用方法,并配有簡單的應(yīng)用實例,幫助讀者掌握基本應(yīng)用方法;第11章為RT-Thread的設(shè)備管理,詳細介紹了IO設(shè)備模型框架,在此基礎(chǔ)上概括了PIN設(shè)備、UART設(shè)備、TIM設(shè)備和ADC設(shè)備的管理方式及應(yīng)用方法,每種設(shè)備均給出了應(yīng)用案例,讀者在掌握上述設(shè)備應(yīng)用后可根據(jù)需要自行學習其他設(shè)備;第12章為RT-Thread軟件包,以AHT10、AT Device、MQTT和cJSON為例詳細介紹了不同類型軟件包的應(yīng)用方法,讀者在此基礎(chǔ)上可根據(jù)應(yīng)用需求快速掌握其他軟件包的使用方法。第13章為綜合應(yīng)用,通過基于STM32和OneNET的智能家居系統(tǒng)介紹了基于STM32及RT-Thread的嵌入式系統(tǒng)開發(fā)設(shè)計流程,幫助讀者全面掌握嵌入式系統(tǒng)設(shè)計開發(fā)的方法。
本書各章內(nèi)容通過裸機開發(fā)和操作系統(tǒng)開發(fā)兩條主線貫穿工作原理與應(yīng)用實踐兩個主題,層次遞進地講解STM32微控制器基本外設(shè)的工作原理及應(yīng)用和RT-Thread操作系統(tǒng)的工作原理及應(yīng)用。為了便于讀者掌握理論及設(shè)計開發(fā)方法,相關(guān)章節(jié)根據(jù)內(nèi)容安排給出大量的應(yīng)用實例,所有實例均經(jīng)過測試驗證,且大部分源于工程項目實踐,讀者參考案例可快速掌握嵌入式系統(tǒng)設(shè)計開發(fā)的方法。此外,本書每章前配有簡化版思維導(dǎo)圖,建議讀者在完成本章內(nèi)容學習后及時完善思維導(dǎo)圖,在此基礎(chǔ)上完成每章后的思考與練習,包括理論基礎(chǔ)題和編程應(yīng)用題,以鞏固理論知識,拓展提高應(yīng)用實踐能力,最終形成完整的嵌入式課程體系。
前言本書是編者多年教學經(jīng)驗和工程實踐經(jīng)驗的總結(jié),由淺入深,難易適中,突出前沿,強調(diào)系統(tǒng)的學習路線,使讀者在快速掌握裸機開發(fā)方法的基礎(chǔ)上,進階操作系統(tǒng)開發(fā),培養(yǎng)結(jié)構(gòu)化、模塊化、面向?qū)ο蟮木幊趟枷牒退季S方式,具備獨立開發(fā)復(fù)雜嵌入式系統(tǒng)的能力。本書不僅是一本教科書和教學參考書,而且可作為物聯(lián)網(wǎng)、儀器儀表、自動控制等工程技術(shù)人員及科技工作者的技術(shù)參考書。
本書由胡永濤任主編,李婕和董明如任副主編,趙新蕖、高雅昆、田效伍參編。其中,胡永濤編寫第1、2、12、13章,李婕編寫第3~5章,董明如編寫第6、7、11章,趙新蕖編寫第8章,高雅昆編寫第9章,田效伍編寫第10章。本書的程序調(diào)試和實驗工作由李婕、董明如、盧亞娟等完成。
本書在編寫過程中參考和借鑒了大量相關(guān)資料,并引用了部分文字和代碼,謹對各位作者表示衷心的感謝。特別鳴謝意法半導(dǎo)體(中國)投資有限公司和上海睿賽德電子科技有限公司,本書獲產(chǎn)學合作協(xié)同育人項目支持,在編寫過程中得到了意法半導(dǎo)體大學計劃負責人丁曉磊女士和睿賽德大學計劃負責人羅齊熙先生大量無私的幫助。杜志勇、常文平、趙斌、楊捷、楊曉、張超、李金玉等為本書的編寫提出了許多寶貴的意見,在此一并表示感謝。
由于編者水平有限,書中難免存在疏漏與不足之處,懇請讀者批評指正,相關(guān)建議可以發(fā)送至郵箱hythait@163com。
編者
前言
第1章嵌入式系統(tǒng)概述1
本章思維導(dǎo)圖1
1.1嵌入式系統(tǒng)基本概念1
1.1.1嵌入式系統(tǒng)的定義及特點1
1.1.2嵌入式系統(tǒng)的發(fā)展歷程及
發(fā)展趨勢2
1.1.3嵌入式系統(tǒng)的應(yīng)用3
1.1.4嵌入式系統(tǒng)的架構(gòu)4
1.2嵌入式系統(tǒng)硬件4
1.2.1嵌入式系統(tǒng)硬件架構(gòu)4
1.2.2嵌入式處理器4
1.2.3ARM微控制器5
1.3嵌入式系統(tǒng)軟件6
1.3.1嵌入式系統(tǒng)軟件架構(gòu)6
1.3.2嵌入式系統(tǒng)軟件編程思想9
思考與練習10
第2章STM32硬件及軟件基礎(chǔ)12
本章思維導(dǎo)圖12
2.1STM32微控制器概述12
2.1.1STM32微控制器產(chǎn)品系列及命名
規(guī)則13
2.1.2STM32L431性能14
2.1.3STM32L431外部結(jié)構(gòu)15
2.2最小系統(tǒng)設(shè)計16
2.3裸機開發(fā)環(huán)境搭建19
2.4C語言基礎(chǔ)22
2.4.1文件結(jié)構(gòu)22
2.4.2程序版式23
2.4.3C語言知識精編24
思考與練習35
第3章STM32通用功能輸入輸出37
本章思維導(dǎo)圖37
3.1GPIO概念及應(yīng)用場景37
3.1.1GPIO概念37
3.1.2GPIO應(yīng)用場景38
3.2IO內(nèi)部電路結(jié)構(gòu)及工作模式39
3.2.1IO內(nèi)部電路結(jié)構(gòu)39
3.2.2IO工作模式41
3.2.3GPIO應(yīng)用步驟42
3.3GPIO應(yīng)用實例1——狀態(tài)指示燈46
3.3.1電路原理及需求分析46
3.3.2實現(xiàn)過程46
3.4GPIO應(yīng)用實例2——按鍵控制LED51
3.4.1電路原理及需求分析51
3.4.2實現(xiàn)過程52
思考與練習54
第4章STM32外部中斷57
本章思維導(dǎo)圖57
4.1中斷基本概念57
4.2STM32外部中斷系統(tǒng)59
4.2.1EXTI主要特征59
4.2.2EXTI內(nèi)部電路結(jié)構(gòu)59
4.2.3EXTI應(yīng)用步驟59
4.3EXTI應(yīng)用實例——按鍵控制LED62
4.3.1電路原理及需求分析62
4.3.2實現(xiàn)過程63
思考與練習64
第5章STM32定時器/計數(shù)器66
本章思維導(dǎo)圖66
5.1定時器/計數(shù)器基本概念66
5.2STM32定時器系統(tǒng)68
5.2.1TIM內(nèi)部電路結(jié)構(gòu)68
5.2.2脈沖寬度調(diào)制70
5.2.3TIM精確定時應(yīng)用步驟72
5.3TIM應(yīng)用實例1——精確定時73
5.3.1電路原理及需求分析73
5.3.2實現(xiàn)過程74
5.4TIM應(yīng)用實例2——PWM控制狀態(tài)
指示燈77
5.4.1電路原理及需求分析77
5.4.2實現(xiàn)過程77
思考與練習81
第6章STM32通用同步異步通信83
本章思維導(dǎo)圖83
6.1通信基礎(chǔ)83
6.1.1通信分類83
6.1.2異步串行通信85
6.2STM32的串口系統(tǒng)87
6.2.1USART的特點87
6.2.2USART內(nèi)部電路結(jié)構(gòu)87
6.2.3USART應(yīng)用步驟87
6.3USART應(yīng)用實例1——串口打印
信息90
6.3.1電路原理及需求分析90
6.3.2實現(xiàn)過程91
6.4USART應(yīng)用實例2——開關(guān)量遠程
監(jiān)控系統(tǒng)95
6.4.1電路原理及需求分析95
6.4.2實現(xiàn)過程96
思考與練習106
目錄第7章RT-Thread操作系統(tǒng)基礎(chǔ)108
本章思維導(dǎo)圖108
7.1RT-Thread操作系統(tǒng)簡介及架構(gòu)108
7.1.1RT-Thread簡介108
7.1.2RT-Thread操作系統(tǒng)架構(gòu)109
7.2RT-Thread開發(fā)環(huán)境搭建111
7.2.1軟件下載及安裝111
7.2.2軟件測試111
7.3RT-Thread內(nèi)核基礎(chǔ)114
7.3.1內(nèi)核簡介114
7.3.2啟動流程116
7.3.3程序內(nèi)存分布118
7.3.4自動初始化機制119
7.3.5內(nèi)核對象模型119
思考與練習120
第8章RT-Thread線程管理122
本章思維導(dǎo)圖122
8.1線程概念及管理方式122
8.1.1線程概念122
8.1.2線程管理方式及特點123
8.2線程工作機制124
8.2.1線程控制塊124
8.2.2線程重要屬性125
8.2.3系統(tǒng)線程128
8.3線程應(yīng)用方法128
8.3.1線程管理方式128
8.3.2動態(tài)線程應(yīng)用步驟130
8.4線程應(yīng)用實例——狀態(tài)指示燈131
思考與練習135
第9章RT-Thread線程間同步137
本章思維導(dǎo)圖137
9.1信號量137
9.1.1信號量工作機制137
9.1.2信號量管理方式139
9.1.3信號量應(yīng)用步驟140
9.2互斥量142
9.2.1互斥量工作機制142
9.2.2互斥量管理方式143
9.2.3互斥量應(yīng)用步驟144
9.2.4優(yōu)先級翻轉(zhuǎn)146
9.3事件集148
9.3.1事件集工作機制148
9.3.2事件集管理方式149
9.3.3事件集應(yīng)用步驟151
9.4線程間同步應(yīng)用實例——多線程
同步152
9.4.1電路原理及需求分析152
9.4.2實現(xiàn)過程153
思考與練習157
第10章RT-Thread線程間通信159
本章思維導(dǎo)圖159
10.1郵箱159
10.1.1郵箱工作機制159
10.1.2郵箱管理方式161
10.1.3郵箱應(yīng)用步驟162
10.2消息隊列164
10.2.1消息隊列工作機制164
10.2.2消息隊列管理方式165
10.2.3消息隊列應(yīng)用步驟166
10.3信號168
10.3.1信號工作機制168
10.3.2信號管理方式168
10.3.3信號應(yīng)用步驟170
10.4線程間通信應(yīng)用實例——多變量
通信171
思考與練習174
第11章RT-Thread設(shè)備驅(qū)動175
本章思維導(dǎo)圖175
11.1IO設(shè)備模型及框架176
11.1.1IO設(shè)備模型176
11.1.2IO設(shè)備模型框架177
11.1.3IO設(shè)備訪問178
11.2PIN設(shè)備驅(qū)動179
11.2.1獲取引腳編號179
11.2.2PIN設(shè)備管理方式180
11.2.3PIN設(shè)備應(yīng)用實例及步驟183
11.3UART設(shè)備驅(qū)動184
11.3.1UART設(shè)備管理方式184
11.3.2UART設(shè)備應(yīng)用實例及步驟188
11.4TIM設(shè)備驅(qū)動189
11.4.1TIM設(shè)備管理方式189
11.4.2TIM設(shè)備應(yīng)用實例及步驟192
11.5ADC設(shè)備驅(qū)動197
11.5.1ADC設(shè)備管理方式197
11.5.2ADC設(shè)備應(yīng)用實例及步驟198
11.6設(shè)備驅(qū)動應(yīng)用實例——遠程監(jiān)控
系統(tǒng)201
11.6.1電路原理及需求分析201
11.6.2實現(xiàn)過程202
思考與練習209
第12章RT-Thread軟件包211
本章思維導(dǎo)圖211
12.1軟件包簡介及應(yīng)用步驟212
12