本書介紹了意法半導體公司出品的基於Arm Cortex-M3內核的STM32F103微控制器在工程實踐中的應用。
全書分為基礎篇和應用篇。基礎篇介紹了嵌入式系統的基本概念、實訓使用的軟硬體平臺、STM32的標準外設庫、嵌入式C語言程式設計的特點、STM32系統時鐘、彩色LCD顯示基礎、字元編碼和顯示字形檔等內容;應用篇依託STM32微控制器的主要外設、常用週邊器件以及典型應用等設計了11個實訓專案。
本書適合作為高職院校電子與控制類專業“嵌入式系統應用”等相關課程的教材,也可以作為工程技術人員學習STM32微控制器程式設計的快速入門參考書。
目錄
基礎篇
第1章 專題1——嵌入式系統概述 2
1.1 從單片機到嵌入式系統 2
1.2 精簡指令集電腦與複雜指令集電腦 3
1.3 普林斯頓結構和哈佛結構 3
1.4 Arm公司及其微處理器 4
1.5 Arm Cortex系列處理器 5
1.6 STM32F103系列微控制器 8
第2章 專題2——實訓專案使用的軟硬體平臺 11
2.1 實訓專案使用的軟體整合式開發環境 11
2.2 實訓專案使用的模擬器 13
2.2.1 模擬器分類 13
2.2.2 JTAG和SWD介面 13
2.3 實訓專案使用的目標板 15
2.4 實訓專案使用的帆板角度測量與控制裝置 15
第3章 專題3——CMSIS與STM32標準外設庫 17
3.1 Arm Cortex微控制器軟體介面標準CMSIS 17
3.2 關於STM32的標準外設庫 18
3.3 STM32標準外設庫的命名規則 23
第4章 專題4——STM32嵌入式C語言程式設計的特點 26
4.1 巨集指令的使用及其意義 26
4.2 STM32嵌入式C語言程式設計中幾個重要關鍵字 28
4.3 STM32嵌入式C語言程式設計的基底資料型別 30
4.4 結構體與指標 32
4.5 枚舉 33
4.6 C語言程式設計的代碼格式 34
第5章 專題5——STM32F10x微控制器的系統時鐘 36
5.1 STM32F10x微控制器系統時鐘的基本結構 36
5.2 STM32F10x微控制器的時鐘源與配置路徑 37
5.3 STM32F10x微控制器的匯流排時鐘 40
5.4 STM32F10x微控制器系統時鐘與外設時鐘的配置方法 40
5.4.1 STM32F10x微控制器系統時鐘的配置函數 40
5.4.2 STM32F10x微控制器外設時鐘的控制 41
第6章 專題6——彩色LCD顯示 42
6.1 彩色LCD顯示與控制的基本原理 42
6.2 彩色LCD顯示器的圖形顯示方法 43
6.3 彩色圖片轉換成C語言陣列檔的方法 44
第7章 專題7——字元編碼與顯示字形檔 46
7.1 ASCII編碼 46
7.2 中文字元編碼 51
7.3 字元在彩色LCD螢幕上的顯示 52
7.4 顯示字形檔與字元編碼的關係 54
應用篇
第8章 實訓項目1——LED閃爍 58
8.1 相關知識 58
8.2 專案實施 59
8.2.1 在MDK開發環境中新建專案 59
8.2.2 MDK工程項目配置 62
8.2.3 編譯並下載運行 66
第9章 實訓專案2——按鍵控制LED亮滅 67
9.1 相關知識 67
9.1.1 STM32F103微控制器通用輸入/輸出埠GPIO的基本結構 67
9.1.2 GPIO的工作模式 68
9.1.3 GPIO埠程式設計涉及的標準外設庫函數 69
9.2 專案實施 70
9.2.1 硬體電路實現 70
9.2.2 程式設計思路 70
9.2.3 程式碼分析 71
9.3 拓展專案——按鍵控制LED閃爍頻率 75
9.3.1 專案內容 75
9.3.2 項目提示 75
第10章 實訓專案3——按鍵控制LED閃爍頻率(外部中斷) 76
10.1 相關知識 76
10.1.1 STM32F103微控制器的中斷系統 76
10.1.2 STM32F103微控制器的外部中斷 80
10.1.3 外部中斷程式設計涉及的標準外設庫函數 81
10.2 專案實施 81
10.2.1 硬體電路設計 81
10.2.2 程式設計思路 82
10.2.3 程式碼分析 82
10.3 拓展專案——LED顯示與按鍵動作的同步 88
10.3.1 專案內容 88
10.3.2 項目提示 88
第11章 實訓專案4——彩色LCD顯示圖片與文字 89
11.1 相關知識 89
11.1.1 STM32F103微控制器的FSMC 89
11.1.2 FSMC程式設計涉及的標準外設庫函數 92
11.1.3 彩色LCD的驅動 92
11.2 專案實施 93
11.2.1 硬體電路設計 93
11.2.2 程式碼分析 93
11.3 拓展專案——按鍵控制字串移動 98
11.3.1 專案內容 98
11.3.2 項目提示 98
第12章 實訓專案5——按鍵控制LED閃爍頻率(計時器中斷) 99
12.1 相關知識 99
12.1.1 STM32F103微控制器的計時器資源 99
12.1.2 STM32F103微控制器的通用計時器 100
12.1.3 通用計時器程式設計涉及的STM32標準外設庫函數 101
12.2 專案實施 101
12.2.1 硬體電路實現 101
12.2.2 程式設計思路 101
12.2.3 程式碼分析 102
12.3 拓展項目——LED1呼吸燈(計時器中斷) 107
12.3.1 專案內容 107
12.3.2 項目提示 107
第13章 實訓專案6——風扇轉速的PWM控制 108
13.1 相關知識 108
13.1.1 脈衝寬度調製的基本原理 108
13.1.2 四線制直流風扇的控制方法 108
13.1.3 STM32通用計時器的PWM 109
13.1.4 STM32引腳的重映射 110
13.1.5 通用計時器PWM輸出程式設計涉及的標準外設庫函數 110
13.2 專案實施 110
13.2.1 硬體電路設計 110
13.2.2 程式設計思路 111
13.2.3 程式碼分析 111
第14章 實訓項目7——帆板角度與晶片溫度檢測 116
14.1 相關知識 116
14.1.1 電阻式角度感測器的原理 116
14.1.2 類比/數位轉換的過程 116
14.1.3 類比數位轉換的技術指標 118
14.1.4 逐次逼近型A/D轉換器 118
14.1.5 STM32微控制器的類比數位轉換器ADC 120
14.1.6 ADC程式設計涉及的標準外設庫函數 121
14.2 專案實施 122
14.2.1 硬體電路設計 122
14.2.2 程式設計思路 122
14.2.3 程式碼分析 123
14.3 拓展專案——利用規則通道檢測晶片溫度與內部參考電壓 129
14.3.1 專案要求 129
14.3.2 項目提示 129
第15章 實訓專案8——帆板角度與晶片溫度檢測(DMA方式) 130
15.1 相關知識 130
15.1.1 DMA的基本概念 130
15.1.2 STM32F103ZE微控制器的DMA 131
15.1.3 DMA程式設計涉及的標準外設庫函數 134
15.2 專案實施 135
15.2.1 硬體電路設計 135
15.2.2 程式設計思路 135
15.2.3 程式碼分析 135
15.3 拓展專案——記憶體到記憶體(M2M)資料傳輸 140
15.3.1 專案內容 140
15.3.2 項目提示 140
第16章 實訓專案9——串列通信控制風扇轉速並獲取帆板角度 142
16.1 相關知識 142
16.1.1 非同步串列通信 142
16.1.2 STM32的通用同步/非同步收發器(USART) 143
16.1.3 STM32的USART程式設計涉及的標準外設庫函數 144
16.2 專案實施 144
16.2.1 硬體電路設計 144
16.2.2 程式設計思路 145
16.2.3 串列通信協定 145
16.2.4 程式碼分析 146
16.2.5 使用串口調試助手進行操作 151
16.3 拓展專案——串口採用DMA方式發送字元 152
16.3.1 專案要求 152
16.3.2 項目提示 152
第17章 實訓專案10——Wi-Fi控制風扇轉速並獲取帆板角度 154
17.1 相關知識 154
17.1.1 ISO/OSI參考模型與TCP/IP協定 154
17.1.2 TCP/IP相關知識點 155
17.1.3 Wi-Fi及其三種工作模式 156
17.1.4 Wi-Fi模組ESP8266 156
17.1.5 ESP8266模組的控制指令 157
17.2 專案實施 158
17.2.1 硬體電路設計 158
17.2.2 程式設計思路 159
17.2.3 程式碼分析 159
17.2.4 使用手機端“網路調試助手”App進行遙控操作 167
第18章 實訓項目11——基於STM32的物聯網雲平臺溫度檢測 169
18.1 相關知識 169
18.1.1 雲服務及其分類 169
18.1.2 物聯網雲平臺 171
18.1.3 中國移動物聯網雲平臺OneNET 171
18.1.4 資料傳輸過程 172
18.1.5 本專案使用的ESP8266模組控制指令 174
18.2 專案實施 175
18.2.1 在OneNET雲平臺上搭建設備和應用 175
18.2.2 程式設計思路 184
18.2.3 程式碼分析 184
18.2.4 在桌面端或手機端觀察雲平臺的溫度資料 189
第1章 專題1——嵌入式系統概述 2
1.1 從單片機到嵌入式系統 2
1.2 精簡指令集電腦與複雜指令集電腦 3
1.3 普林斯頓結構和哈佛結構 3
1.4 Arm公司及其微處理器 4
1.5 Arm Cortex系列處理器 5
1.6 STM32F103系列微控制器 8
第2章 專題2——實訓專案使用的軟硬體平臺 11
2.1 實訓專案使用的軟體整合式開發環境 11
2.2 實訓專案使用的模擬器 13
2.2.1 模擬器分類 13
2.2.2 JTAG和SWD介面 13
2.3 實訓專案使用的目標板 15
2.4 實訓專案使用的帆板角度測量與控制裝置 15
第3章 專題3——CMSIS與STM32標準外設庫 17
3.1 Arm Cortex微控制器軟體介面標準CMSIS 17
3.2 關於STM32的標準外設庫 18
3.3 STM32標準外設庫的命名規則 23
第4章 專題4——STM32嵌入式C語言程式設計的特點 26
4.1 巨集指令的使用及其意義 26
4.2 STM32嵌入式C語言程式設計中幾個重要關鍵字 28
4.3 STM32嵌入式C語言程式設計的基底資料型別 30
4.4 結構體與指標 32
4.5 枚舉 33
4.6 C語言程式設計的代碼格式 34
第5章 專題5——STM32F10x微控制器的系統時鐘 36
5.1 STM32F10x微控制器系統時鐘的基本結構 36
5.2 STM32F10x微控制器的時鐘源與配置路徑 37
5.3 STM32F10x微控制器的匯流排時鐘 40
5.4 STM32F10x微控制器系統時鐘與外設時鐘的配置方法 40
5.4.1 STM32F10x微控制器系統時鐘的配置函數 40
5.4.2 STM32F10x微控制器外設時鐘的控制 41
第6章 專題6——彩色LCD顯示 42
6.1 彩色LCD顯示與控制的基本原理 42
6.2 彩色LCD顯示器的圖形顯示方法 43
6.3 彩色圖片轉換成C語言陣列檔的方法 44
第7章 專題7——字元編碼與顯示字形檔 46
7.1 ASCII編碼 46
7.2 中文字元編碼 51
7.3 字元在彩色LCD螢幕上的顯示 52
7.4 顯示字形檔與字元編碼的關係 54
應用篇
第8章 實訓項目1——LED閃爍 58
8.1 相關知識 58
8.2 專案實施 59
8.2.1 在MDK開發環境中新建專案 59
8.2.2 MDK工程項目配置 62
8.2.3 編譯並下載運行 66
第9章 實訓專案2——按鍵控制LED亮滅 67
9.1 相關知識 67
9.1.1 STM32F103微控制器通用輸入/輸出埠GPIO的基本結構 67
9.1.2 GPIO的工作模式 68
9.1.3 GPIO埠程式設計涉及的標準外設庫函數 69
9.2 專案實施 70
9.2.1 硬體電路實現 70
9.2.2 程式設計思路 70
9.2.3 程式碼分析 71
9.3 拓展專案——按鍵控制LED閃爍頻率 75
9.3.1 專案內容 75
9.3.2 項目提示 75
第10章 實訓專案3——按鍵控制LED閃爍頻率(外部中斷) 76
10.1 相關知識 76
10.1.1 STM32F103微控制器的中斷系統 76
10.1.2 STM32F103微控制器的外部中斷 80
10.1.3 外部中斷程式設計涉及的標準外設庫函數 81
10.2 專案實施 81
10.2.1 硬體電路設計 81
10.2.2 程式設計思路 82
10.2.3 程式碼分析 82
10.3 拓展專案——LED顯示與按鍵動作的同步 88
10.3.1 專案內容 88
10.3.2 項目提示 88
第11章 實訓專案4——彩色LCD顯示圖片與文字 89
11.1 相關知識 89
11.1.1 STM32F103微控制器的FSMC 89
11.1.2 FSMC程式設計涉及的標準外設庫函數 92
11.1.3 彩色LCD的驅動 92
11.2 專案實施 93
11.2.1 硬體電路設計 93
11.2.2 程式碼分析 93
11.3 拓展專案——按鍵控制字串移動 98
11.3.1 專案內容 98
11.3.2 項目提示 98
第12章 實訓專案5——按鍵控制LED閃爍頻率(計時器中斷) 99
12.1 相關知識 99
12.1.1 STM32F103微控制器的計時器資源 99
12.1.2 STM32F103微控制器的通用計時器 100
12.1.3 通用計時器程式設計涉及的STM32標準外設庫函數 101
12.2 專案實施 101
12.2.1 硬體電路實現 101
12.2.2 程式設計思路 101
12.2.3 程式碼分析 102
12.3 拓展項目——LED1呼吸燈(計時器中斷) 107
12.3.1 專案內容 107
12.3.2 項目提示 107
第13章 實訓專案6——風扇轉速的PWM控制 108
13.1 相關知識 108
13.1.1 脈衝寬度調製的基本原理 108
13.1.2 四線制直流風扇的控制方法 108
13.1.3 STM32通用計時器的PWM 109
13.1.4 STM32引腳的重映射 110
13.1.5 通用計時器PWM輸出程式設計涉及的標準外設庫函數 110
13.2 專案實施 110
13.2.1 硬體電路設計 110
13.2.2 程式設計思路 111
13.2.3 程式碼分析 111
第14章 實訓項目7——帆板角度與晶片溫度檢測 116
14.1 相關知識 116
14.1.1 電阻式角度感測器的原理 116
14.1.2 類比/數位轉換的過程 116
14.1.3 類比數位轉換的技術指標 118
14.1.4 逐次逼近型A/D轉換器 118
14.1.5 STM32微控制器的類比數位轉換器ADC 120
14.1.6 ADC程式設計涉及的標準外設庫函數 121
14.2 專案實施 122
14.2.1 硬體電路設計 122
14.2.2 程式設計思路 122
14.2.3 程式碼分析 123
14.3 拓展專案——利用規則通道檢測晶片溫度與內部參考電壓 129
14.3.1 專案要求 129
14.3.2 項目提示 129
第15章 實訓專案8——帆板角度與晶片溫度檢測(DMA方式) 130
15.1 相關知識 130
15.1.1 DMA的基本概念 130
15.1.2 STM32F103ZE微控制器的DMA 131
15.1.3 DMA程式設計涉及的標準外設庫函數 134
15.2 專案實施 135
15.2.1 硬體電路設計 135
15.2.2 程式設計思路 135
15.2.3 程式碼分析 135
15.3 拓展專案——記憶體到記憶體(M2M)資料傳輸 140
15.3.1 專案內容 140
15.3.2 項目提示 140
第16章 實訓專案9——串列通信控制風扇轉速並獲取帆板角度 142
16.1 相關知識 142
16.1.1 非同步串列通信 142
16.1.2 STM32的通用同步/非同步收發器(USART) 143
16.1.3 STM32的USART程式設計涉及的標準外設庫函數 144
16.2 專案實施 144
16.2.1 硬體電路設計 144
16.2.2 程式設計思路 145
16.2.3 串列通信協定 145
16.2.4 程式碼分析 146
16.2.5 使用串口調試助手進行操作 151
16.3 拓展專案——串口採用DMA方式發送字元 152
16.3.1 專案要求 152
16.3.2 項目提示 152
第17章 實訓專案10——Wi-Fi控制風扇轉速並獲取帆板角度 154
17.1 相關知識 154
17.1.1 ISO/OSI參考模型與TCP/IP協定 154
17.1.2 TCP/IP相關知識點 155
17.1.3 Wi-Fi及其三種工作模式 156
17.1.4 Wi-Fi模組ESP8266 156
17.1.5 ESP8266模組的控制指令 157
17.2 專案實施 158
17.2.1 硬體電路設計 158
17.2.2 程式設計思路 159
17.2.3 程式碼分析 159
17.2.4 使用手機端“網路調試助手”App進行遙控操作 167
第18章 實訓項目11——基於STM32的物聯網雲平臺溫度檢測 169
18.1 相關知識 169
18.1.1 雲服務及其分類 169
18.1.2 物聯網雲平臺 171
18.1.3 中國移動物聯網雲平臺OneNET 171
18.1.4 資料傳輸過程 172
18.1.5 本專案使用的ESP8266模組控制指令 174
18.2 專案實施 175
18.2.1 在OneNET雲平臺上搭建設備和應用 175
18.2.2 程式設計思路 184
18.2.3 程式碼分析 184
18.2.4 在桌面端或手機端觀察雲平臺的溫度資料 189
網路書店
類別
折扣
價格
-
新書87折$219