1.1 從單片機(jī)到嵌入式系統(tǒng) 1
1.1.1 單片機(jī)系統(tǒng) 1
1.1.2 嵌入式系統(tǒng) 2
1.2 精簡(jiǎn)指令集計(jì)算機(jī)與復(fù)雜指令集計(jì)算機(jī) 5
1.3 普林斯頓結(jié)構(gòu)和哈佛結(jié)構(gòu) 6
1.3.1 普林斯頓結(jié)構(gòu) 6
1.3.2 哈佛結(jié)構(gòu) 8
1.4 ARM公司及其微處理器 8
1.4.1 ARM公司簡(jiǎn)介 9
1.4.2 ARM的產(chǎn)品體系 10
1.4.3 ARM Cortex-M系列處理器 12
1.5 STM32F103系列微控制器 13
2.1宏指令的使用及其意義 17
2.2 STM32嵌入式C語(yǔ)言編程中幾個(gè)重要的關(guān)鍵字 21
2.3 STM32嵌入式C語(yǔ)言編程的基本數(shù)據(jù)類型 22
2.4 結(jié)構(gòu)體與結(jié)構(gòu)體指針 24
2.5 枚舉 25
2.6 C語(yǔ)言編程的代碼格式 26
3.1 CMSIS與STM32標(biāo)準(zhǔn)外設(shè)庫(kù) 28
3.1.1 ARM Cortex微控制器軟件接口標(biāo)準(zhǔn)CMSIS 28
3.1.2 STM32標(biāo)準(zhǔn)外設(shè)庫(kù) 29
3.1.3 STM32標(biāo)準(zhǔn)外設(shè)庫(kù)的命名規(guī)則 33
3.2 STM32嵌入式開(kāi)發(fā)板簡(jiǎn)介 35
3.3 仿真器 35
3.3.1 仿真器的分類 36
3.3.2 JTAG和SWD接口 37
3.4 軟件集成開(kāi)發(fā)環(huán)境 38
3.5 新建工程模板 39
3.5.1 新建本地文件夾 39
3.5.2 在MDK中新建項(xiàng)目 40
3.5.3 MDK工程項(xiàng)目配置 41
3.5.4 編譯和下載程序 44
4.1 相關(guān)知識(shí) 47
4.1.1 STM32芯片架構(gòu) 47
4.1.2 存儲(chǔ)器映射 49
4.1.3 寄存器映射 51
4.1.4 GPIO 簡(jiǎn)介 56
4.2 項(xiàng)目實(shí)施 56
4.2.1 硬件電路實(shí)現(xiàn) 56
4.2.2 程序設(shè)計(jì)思路 56
4.2.3 程序代碼分析 57
4.3 拓展項(xiàng)目1LED流水燈 60
4.3.1 拓展項(xiàng)目1要求 60
4.3.2 拓展項(xiàng)目1實(shí)施 60
5.1 相關(guān)知識(shí) 63
5.1.1 GPIO的基本結(jié)構(gòu) 63
5.1.2 GPIO的工作模式 64
5.1.3 GPIO的初始化及標(biāo)準(zhǔn)外設(shè)庫(kù)函數(shù) 66
5.1.4 STM32F10x微控制器的系統(tǒng)時(shí)鐘 66
5.2 項(xiàng)目實(shí)施 70
5.2.1 硬件電路實(shí)現(xiàn) 70
5.2.2 程序設(shè)計(jì)思路 70
5.2.3程序代碼分析 71
5.3 拓展項(xiàng)目2按鍵控制LED流水燈 74
5.3.1 拓展項(xiàng)目2要求 74
5.3.2 拓展項(xiàng)目2實(shí)施 74
6.1 相關(guān)知識(shí) 77
6.1.1 STM32F10x微控制器的位帶 77
6.1.2 LCD12864基礎(chǔ) 80
6.1.3 數(shù)碼管顯示原理 82
6.2 項(xiàng)目實(shí)施 83
6.2.1 硬件電路實(shí)現(xiàn) 83
6.2.2 程序設(shè)計(jì)思路 83
6.2.3 程序代碼分析 83
6.3 拓展項(xiàng)目3數(shù)碼管顯示 89
6.3.1 拓展項(xiàng)目3要求 89
6.3.2 拓展項(xiàng)目3實(shí)施 89
7.1 相關(guān)知識(shí) 94
7.1.1 STM32F10x微控制器的中斷控制器 94
7.1.2 STM32F10x微控制器的外部中斷 97
7.1.3 外部中斷編程涉及的標(biāo)準(zhǔn)外設(shè)庫(kù)函數(shù) 100
7.2 項(xiàng)目實(shí)施 101
7.2.1 硬件電路實(shí)現(xiàn) 101
7.2.2 程序設(shè)計(jì)思路 102
7.2.3 程序代碼分析 103
7.3 拓展項(xiàng)目4中斷按鍵控制流水燈 108
7.3.1 拓展項(xiàng)目4要求 108
7.3.2 拓展項(xiàng)目4實(shí)施 108
8.1 相關(guān)知識(shí) 110
8.1.1 SysTick定時(shí)器 110
8.1.2 SysTick的相關(guān)寄存器及函數(shù) 111
8.1.3 利用SysTick定時(shí)器實(shí)現(xiàn)精確延時(shí) 112
8.2 項(xiàng)目實(shí)施 114
8.2.1 硬件電路實(shí)現(xiàn) 114
8.2.2 程序設(shè)計(jì)思路 114
8.2.3 程序代碼分析 115
8.3 拓展項(xiàng)目5數(shù)碼管顯示倒計(jì)時(shí) 119
8.3.1 拓展項(xiàng)目5要求 119
8.3.2 拓展項(xiàng)目5實(shí)施 119
9.1 相關(guān)知識(shí) 124
9.1.1 前后臺(tái)系統(tǒng)與實(shí)時(shí)操作系統(tǒng) 124
9.1.2 狀態(tài)機(jī)編程思想 126
9.1.3 狀態(tài)機(jī)編程的實(shí)現(xiàn)方法 128
9.2 項(xiàng)目實(shí)施 130
9.2.1 硬件電路實(shí)現(xiàn) 130
9.2.2 程序設(shè)計(jì)思路 131
9.2.3 程序代碼分析 132
9.3 拓展項(xiàng)目6簡(jiǎn)易時(shí)鐘 139
9.3.1 拓展項(xiàng)目6要求 139
9.3.2 拓展項(xiàng)目6實(shí)施 139
10.1 相關(guān)知識(shí) 142
10.1.1 通信的相關(guān)概念 142
10.1.2 異步串行通信協(xié)議 145
10.1.3 STM32的同步/異步收發(fā)器(USART) 146
10.1.4 STM32微控制器的USART編程涉及的標(biāo)準(zhǔn)外設(shè)庫(kù)函數(shù) 148
10.2 項(xiàng)目實(shí)施 149
10.2.1 硬件電路實(shí)現(xiàn) 149
10.2.2 程序設(shè)計(jì)思路 149
10.2.3 程序代碼分析 151
10.2.4 使用串口調(diào)試助手驗(yàn)證實(shí)驗(yàn)現(xiàn)象 156
10.3 拓展項(xiàng)目7雙機(jī)互控LED燈 157
10.3.1 拓展項(xiàng)目7要求 157
10.3.2 拓展項(xiàng)目7實(shí)施 157
11.1 相關(guān)知識(shí) 159
11.1.1 模/數(shù)轉(zhuǎn)換過(guò)程 159
11.1.2 模/數(shù)轉(zhuǎn)換的技術(shù)指標(biāo) 161
11.1.3 逐次逼近型ADC 161
11.1.4 STM32微控制器的ADC模塊 163
11.1.5 STM32微控制器的ADC編程涉及的標(biāo)準(zhǔn)外設(shè)庫(kù)函數(shù) 167
11.2 項(xiàng)目實(shí)施 167
11.2.1 硬件電路實(shí)現(xiàn) 167
11.2.2 程序設(shè)計(jì)思路 168
11.2.3 程序代碼分析 168
11.3 拓展項(xiàng)目8利用規(guī)則通道檢測(cè)芯片溫度 173
11.3.1 拓展項(xiàng)目8要求 173
11.3.2 拓展項(xiàng)目8實(shí)施 173
12.1 相關(guān)知識(shí) 177
12.1.1 DMA的基本概念 177
12.1.2 STM32F10x微控制器的DMA 178
12.1.3 DMA控制器編程涉及的標(biāo)準(zhǔn)外設(shè)庫(kù)函數(shù) 182
12.2 項(xiàng)目實(shí)施 183
12.2.1 硬件電路實(shí)現(xiàn) 183
12.2.2 程序設(shè)計(jì)思路 183
12.2.3 程序代碼分析 184
12.3 拓展項(xiàng)目9M2M數(shù)據(jù)傳輸 190
12.3.1 拓展項(xiàng)目9要求 190
12.3.2 拓展項(xiàng)目9實(shí)施 190
13.1 相關(guān)知識(shí) 194
13.1.1 STM32F10x微控制器的定時(shí)器資源 194
13.1.2 STM32F10x微控制器的定時(shí)器 195
13.1.3 STM32F103ZE定時(shí)器的輸入/輸出引腳 198
13.1.4 STM32F103定時(shí)器的輸入/輸出通道 199
13.1.5 定時(shí)器編程涉及的標(biāo)準(zhǔn)外設(shè)庫(kù)函數(shù) 203
13.2 項(xiàng)目實(shí)施 204
13.2.1 硬件電路實(shí)現(xiàn) 204
13.2.2 程序設(shè)計(jì)思路 204
13.2.3 程序代碼分析 205
13.3 拓展項(xiàng)目10PWM實(shí)現(xiàn)呼吸燈 209
13.3.1 拓展項(xiàng)目10要求 209
13.3.2 拓展項(xiàng)目10實(shí)施 209
14.1 相關(guān)知識(shí) 214
14.1.1 彩色LCD顯示與控制的基本原理 214
14.1.2 彩色LCD顯示器的圖形顯示方法 216
14.1.3 字符漢字的編碼與字模 218
14.1.4 STM32F103微控制器的FSMC 221
14.1.5 電阻觸摸屏的工作原理 223
14.1.6 彩色LCD及觸摸屏的驅(qū)動(dòng)函數(shù) 224
14.2 項(xiàng)目實(shí)施 225
14.2.1 硬件電路實(shí)現(xiàn) 225
14.2.2 程序設(shè)計(jì)思路 226
14.2.3 程序代碼分析 226
14.3 拓展項(xiàng)目11觸摸屏畫(huà)板 235
14.3.1 拓展項(xiàng)目11要求 235
14.3.2 拓展項(xiàng)目11實(shí)施 235
15.1 相關(guān)知識(shí) 236
15.1.1 嵌入式操作系統(tǒng)簡(jiǎn)介 237
15.1.2 礐/OS-III的體系結(jié)構(gòu) 239
15.1.3 礐/OS-III的任務(wù)管理 239
15.1.4 移植礐/OS-III到STM32F103 242
15.1.5 礐/OS-III編程與裸機(jī)編程的區(qū)別 244
15.2 項(xiàng)目實(shí)施 246
15.2.1 硬件電路實(shí)現(xiàn) 246
15.2.2 程序設(shè)計(jì)思路 247
15.2.3 程序代碼分析 247
15.3 拓展項(xiàng)目12多傳感器參數(shù)檢測(cè)系統(tǒng) 251
15.3.1 拓展項(xiàng)目12要求 251
15.3.2 拓展項(xiàng)目12實(shí)施 251
16.1 相關(guān)知識(shí) 253
16.1.1 嵌入式電子產(chǎn)品設(shè)計(jì)的一般步驟 253
16.1.2 溫濕度傳感器及其驅(qū)動(dòng) 255
16.1.3 RTC實(shí)時(shí)時(shí)鐘 260
16.1.4 ESP8266模塊 263
16.1.5 BH1750FVI光照強(qiáng)度傳感器 264
16.1.6 直流電動(dòng)機(jī)調(diào)速控制原理及其驅(qū)動(dòng) 265
16.1.7 步進(jìn)電動(dòng)機(jī)控制原理及其驅(qū)動(dòng) 265
16.1.8 原子云平臺(tái) 266
16.2 項(xiàng)目實(shí)施 268
16.2.1 硬件電路實(shí)現(xiàn) 268
16.2.2 程序設(shè)計(jì)思路 268
16.2.3 程序代碼分析 269
16.3 拓展項(xiàng)目13智能風(fēng)扇控制器的設(shè)計(jì) 272
16.3.1 拓展項(xiàng)目13要求 272
16.3.2 拓展項(xiàng)目13實(shí)施 272
附錄A 標(biāo)準(zhǔn)ASCII碼對(duì)照表 274
附錄B 圖形符號(hào)對(duì)照表 276