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