3dwoo大學簡體電腦書店
STM32庫開發實戰指南(第2版):基于STM32F103
( 簡體 字)
作者:劉火良 楊森類別:1. -> 電腦組織與體系結構 -> 單晶片 -> STM32
出版社:機械工業出版社STM32庫開發實戰指南(第2版):基于STM32F103 3dWoo書號: 46925
詢問書籍請說出此書號!
有庫存
NT售價: 495
出版日:6/1/2017
頁數:691
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 字 )
ISBN:9787111565314 加入購物車加到我的最愛 (請先登入會員)
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證, 繁體書的下載亦請直接連絡出版社)
第一部分 基礎篇
第1章 如何安裝KEIL5 2
1.1 溫馨提示 2
1.2 獲取KEIL5安裝包 2
1.3 開始安裝KEIL5 3
1.4 安裝STM32芯片包 5
第2章 如何用DAP仿真器下載程序 7
2.1 仿真器簡介 7
2.2 硬件連接 7
2.3 仿真器配置 8
2.4 選擇目標板 9
2.5 下載程序 10
第3章 如何用串口下載程序 11
3.1 安裝USB轉串口驅動 11
3.2 硬件連接 11
3.3 開始下載 12
3.4 ISP一鍵下載原理分析 14
3.4.1 ISP簡介 14
3.4.2 ISP普通下載 14
3.4.3 BOOT配置 15
3.4.4 ISP一鍵下載 15
第4章 初識STM32 17
4.1 什么是STM32 17
4.2 STM32能做什么 17
4.2.1 智能手環 18
4.2.2 微型四軸飛行器 19
4.2.3 淘寶眾籌 19
4.3 STM32怎么選型 20
4.3.1 STM32分類 20
4.3.2 STM32命名方法 21
4.3.3 選擇合適的MCU 21
第5章 什么是寄存器 24
5.1 STM32芯片外觀 24
5.2 芯片里面有什么 25
5.3 存儲器映射 27
5.4 寄存器映射 30
5.4.1 STM32的外設地址映射 31
5.4.2 C語言對寄存器的封裝 33
第6章 新建工程——寄存器版 38
6.1 新建本地工程文件夾 38
6.2 新建工程 39
6.3 下載程序 42
第7章 使用寄存器點亮LED 43
7.1 GPIO簡介 43
7.2 GPIO框圖剖析 43
7.2.1 基本結構分析 43
7.2.2 GPIO工作模式 47
7.3 實驗:使用寄存器點亮LED 48
7.3.1 硬件連接 49
7.3.2 啟動文件 50
7.3.3 stm32f10x.h文件 51
7.3.4 main文件 52
7.3.5 下載驗證 56
第8章 自己寫庫——構建庫函數雛形 57
8.1 什么是STM32函數庫 57
8.2 為什么采用庫來開發及學習 58
8.3 實驗:構建庫函數雛形 58
8.3.1 外部寄存器結構體定義 59
8.3.2 外設存儲器映射 60
8.3.3 外設聲明 60
8.3.4 定義位操作函數 62
8.3.5 定義初始化結構體 65
8.3.6 定義引腳模式的枚舉類型 65
8.3.7 定義GPIO初始化函數 69
8.3.8 全新面貌,使用函數點亮LED 72
8.3.9 下載驗證 73
8.3.10 總結 73
第9章 初識STM32標準庫 75
9.1 CMSIS標準及庫層次關系 75
9.1.1 庫目錄、文件簡介 76
9.1.2 庫各文件間的關系 81
9.2 使用幫助文檔 81
9.2.1 常用官方資料 81
9.2.2 初識庫函數 83
第10章 新建工程——庫函數版 85
10.1 新建本地工程文件夾 85
10.2 新建工程 86
第11章 GPIO輸出——使用固件庫點亮LED 93
11.1 硬件設計 93
11.2 軟件設計 93
11.2.1 編程要點 94
11.2.2 代碼分析 94
11.2.3 下載驗證 99
11.3 STM32標準庫補充知識 99
第12章 GPIO輸入——按鍵檢測 102
12.1 硬件設計 102
12.2 軟件設計 103
12.2.1 編程要點 103
12.2.2 代碼分析 103
12.3 下載驗證 105
第13章 GPIO——位帶操作 106
13.1 位帶簡介 106
13.1.1 外設位帶區 106
13.1.2 SRAM位帶區 107
13.1.3 位帶區和位帶別名區地址轉換 107
13.2 GPIO位帶操作 108
第14章 啟動文件 111
14.1 啟動文件簡介 111
14.2 查找ARM匯編指令 111
14.3 啟動文件代碼講解 111
第15章 RCC——使用HSE/HSI配置時鐘 118
15.1 RCC主要作用——時鐘部分 118
15.2 RCC框圖剖析——時鐘部分 118
15.2.1 系統時鐘 118
15.2.2 其他時鐘 122
15.3 配置系統時鐘實驗 123
15.3.1 使用HSE 123
15.3.2 使用HSI 123
15.3.3 硬件設計 123
15.3.4 軟件設計 124
15.3.5 下載驗證 128
第16章 STM32中斷應用概覽 130
16.1 異常類型 130
16.2 NVIC簡介 131
16.2.1 NVIC寄存器簡介 131
16.2.2 NVIC 中斷配置固件庫 132
16.3 中斷優先級 132
16.3.1 優先級定義 132
16.3.2 優先級分組 132
16.4 中斷編程 133
第17章 EXTI——外部中斷/事件控制器 135
17.1 EXTI簡介 135
17.2 EXTI功能框圖剖析 135
17.3 中斷/事件線 137
17.4 EXTI初始化結構體詳解 138
17.5 外部中斷控制實驗 138
17.5.1 硬件設計 139
17.5.2 軟件設計 139
17.5.3 下載驗證 143
第18章 SysTick——系統定時器 144
18.1 SysTick簡介 144
18.2 SysTick寄存器介紹 144
18.3 SysTick定時實驗 145
18.3.1 硬件設計 145
18.3.2 軟件設計 145
18.3.3 下載驗證 152
第19章 通信的基本概念 153
19.1 串行通信與并行通信 153
19.2 全雙工、半雙工及單工通信 154
19.3 同步通信與異步通信 154
19.4 通信速率 155
第20章 USART——串口通信 156
20.1 串口通信協議簡介 156
20.1.1 物理層 156
20.1.2 協議層 159
20.2 STM32的USART簡介 160
20.3 USART功能框圖剖析 161
20.4 USART初始化結構體詳解 165
20.5 USART1接發通信實驗 166
20.5.1 硬件設計 166
20.5.2 軟件設計 167
20.5.3 下載驗證 171
20.6 使用USART1指令控制RGB彩燈的實驗 172
20.6.1 硬件設計 172
20.6.2 軟件設計 172
20.6.3 下載驗證 176
第21章 DMA——直接存儲器訪問 177
21.1 DMA簡介 177
21.2 DMA控制器的框圖剖析 177
21.3 DMA數據配置 179
21.4 DMA初始化結構體詳解 180
21.5 從存儲器到存儲器模式的實驗 182
21.5.1 硬件設計 182
21.5.2 軟件設計 182
21.5.3 下載驗證 186
21.6 從存儲器到外設模式的實驗 186
21.6.1 硬件設計 186
21.6.2 軟件設計 186
21.6.3 下載驗證 189
第22章 常用存儲器介紹 190
22.1 存儲器種類 190
22.2 RAM 191
22.2.1 DRAM 191
22.2.2 SRAM 192
22.2.3 DRAM與SRAM的應用場合 192
22.3 非易失性存儲器 192
22.3.1 ROM 192
22.3.2 Flash存儲器 193
第23章 I2C——讀寫EEPROM 195
23.1 I2C協議簡介 195
23.1.1 I2C物理層 195
23.1.2 協議層 196
23.2 STM32的I2C特性及架構 199
23.2.1 STM32的I2C外設簡介 199
23.2.2 STM32的I2C架構剖析 199
23.2.3 通信過程 201
23.3 I2C初始化結構體詳解 203
23.4 I2C——讀寫EEPROM實驗 204
23.4.1 硬件設計 204
24.4.2 軟件設計 205
23.4.3 下載驗證 222
第24章 SPI——讀寫串行Flash 存儲器 223
24.1 SPI協議簡介 223
24.1.1 SPI物理層 223
24.1.2 協議層 224
24.2 STM32的SPI特性及架構 226
24.2.1 STM32的SPI外設簡介 226
24.2.2 STM32的SPI架構剖析 227
24.2.3 通信過程 228
24.3 SPI初始化結構體詳解 229
24.4 SPI——讀寫串行Flash存儲器實驗 231
24.4.1 硬件設計 231
24.4.2 軟件設計 232
24.4.3 下載驗證 250
第25章 串行Flash文件系統——FatFs 251
25.1 文件系統 251
25.2 FatFs文件系統簡介 252
25.2.1 FatFs的目錄結構 252
25.2.2 FatFs幫助文檔 252
25.2.3 FatFs源碼 253
25.3 FatFs文件系統移植實驗 254
25.3.1 FatFs程序結構圖 254
25.3.2 硬件設計 254
25.3.3 FatFs移植步驟 254
25.3.4 FatFs底層設備驅動函數 256
25.3.5 FatFs功能配置 261
25.3.6 FatFs功能測試 262
25.3.7 下載驗證 265
25.4 FatFs功能使用實驗 266
25.4.1 硬件設計 266
25.4.2 軟件設計 266
25.4.3 下載驗證 271
第二部分 提高篇
第26章 LCD——液晶顯示器 274
26.1 顯示器簡介 274
26.1.1 液晶顯示器 274
26.1.2 LED和OLED顯示器 275
26.1.3 顯示器的基本參數 276
26.2 液晶控制原理 276
26.2.1 液晶面板的控制信號 277
26.2.2 液晶數據傳輸時序 278
26.2.3 顯存 280
26.3 秉火3.2寸液晶屏簡介 280
26.3.1 3.2寸電阻觸摸屏實物 280
26.3.2 ILI9341液晶控制器簡介 281
26.3.3 液晶屏的信號線及8080時序 282
26.4 使用STM32的FSMC模擬8080接口時序 283
26.4.1 FSMC簡介 283
26.4.2 FSMC的地址映射 285
26.4.3 FSMC控制異步NOR Flash存儲器的時序 287
26.4.4 用FSMC模擬8080時序 288
26.5 NOR Flash存儲器時序結構體 289
26.6 FSMC初始化結構體 291
26.7 FSMC——液晶顯示實驗 293
26.7.1 硬件設計 293
26.7.2 軟件設計 295
26.7.3 下載驗證 316
第27章 LCD——液晶顯示中英文 317
27.1 字符編碼 317
27.1.1 ASCII編碼 317
27.1.2 中文編碼 319
27.1.3 Unicode字符集和編碼 322
27.1.4 UTF-32 323
27.1.5 UTF-16 323
27.1.6 UTF-8 324
27.1.7 BOM 325
27.2 什么是字模 325
27.2.1 字模的構成 325
27.2.2 字模顯示原理 326
27.2.3 如何制作字模 327
27.2.4 字模尋址公式 328
27.2.5 存儲字模文件 329
27.3 各種模式的液晶顯示字符實驗 329
27.3.1 硬件設計 329
27.3.2 顯示ASCII編碼的字符 330
27.3.3 顯示GB2312編碼的字符 338
27.3.4 顯示任意大小的字符 346
27.3.5 下載驗證 352
第28章 電阻觸摸屏——觸摸畫板 353
28.1 觸摸屏簡介 353
28.1.1 電阻式觸摸屏檢測原理 354
28.1.2 電阻觸摸屏控制芯片 355
28.1.3 電容式觸摸屏檢測原理 356
28.2 電阻觸摸屏——觸摸畫板實驗 357
28.2.1 硬件設計 357
28.2.2 軟件設計 359
28.2.3 下載驗證 375
第29章 ADC——電壓采集 376
29.1 ADC簡介 376
29.2 ADC功能框圖剖析 376
29.3 ADC初始化結構體詳解 381
29.4 獨立模式單通道采集實驗 382
29.4.1 硬件設計 382
29.4.2 軟件設計 382
29.4.3 下載驗證 387
29.5 獨立模式多通道采集實驗 387
29.5.1 硬件設計 387
29.5.2 軟件設計 387
29.5.3 下載驗證 391
29.6 雙重ADC同步規則模式采集實驗 391
29.6.1 硬件設計 392
29.6.2 軟件設計 393
29.6.3 下載驗證 397
第30章 TIM——基本定時器 398
30.1 定時器分類 398
30.2 基本定時器功能框圖剖析 398
30.3 定時器初始化結構體詳解 399
30.4 基本定時器定時實驗 400
30.4.1 硬件設計 400
30.4.2 軟件設計 400
30.4.3 下載驗證 403
第31章 TIM——高級定時器 404
31.1 高級控制定時器 404
31.2 高級控制定時器功能框圖剖析 405
31.3 輸入捕獲應用 413
31.3.1 測量脈寬或者頻率 413
31.3.2 PWM輸入模式 414
31.4 輸出比較應用 415
31.5 定時器初始化結構體詳解 417
31.6 PWM互補輸出實驗 420
31.6.1 硬件設計 420
31.6.2 軟件設計 420
31.6.3 下載驗證 424
31.7 脈寬測量輸入捕獲實驗 424
31.7.1 硬件設計 424
31.7.2 軟件設計 425
31.7.3 下載驗證 429
31.8 PWM輸入捕獲實驗 430
31.8.1 硬件設計 430
31.8.2 軟件設計 430
31.8.3 下載驗證 437
第32章 TIM——電容按鍵檢測 438
32.1 電容按鍵原理 438
32.2 電容按鍵檢測實驗 439
32.2.1 硬件設計 440
32.2.2 軟件設計 440
32.2.3 下載驗證 446
第33章 IWDG——獨立看門狗 447
33.1 IWDG簡介 447
33.2 IWDG功能框圖剖析 447
33.3 怎么用IWDG 448
33.4 IWDG超時實驗 449
33.4.1 硬件設計 449
33.4.2 軟件設計 449
33.4.3 下載驗證 451
第34章 WWDG——窗口看門狗 452
34.1 WWDG簡介 452
34.2 WWDG功能框圖剖析 452
34.3 怎么用WWDG 454
34.4 WWDG喂狗實驗 454
34.4.1 硬件設計 454
34.4.2 軟件設計 454
34.4.3 下載驗證 457
第35章 SDIO——SD卡讀寫測試 458
35.1 SDIO簡介 458
35.2 SD卡物理結構 459
35.3 SDIO總線 460
35.3.1 總線拓撲 460
35.3.2 總線協議 461
35.3.3 命令 462
35.3.4 響應 465
35.4 SD卡的操作模式及切換 466
35.4.1 SD卡的操作模式 466
35.4.2 卡識別模式 467
35.4.3 數據傳輸模式 468
35.5 STM32的SDIO功能框圖剖析 469
35.6 SDIO初始化結構體 473
35.7 SDIO命令初始化結構體 474
35.8 SDIO數據初始化結構體 475
35.9 SD卡讀寫測試實驗 475
35.9.1 硬件設計 475
35.9.2 軟件設計 476
35.9.3 下載驗證 504
第36章 基于SD卡的FatFs文件系統 505
36.1 FatFs移植步驟 505
36.2 FatFs接口函數 507
36.3 FatFs功能測試 511
36.4 下載驗證 514
第37章 電源管理——實現低功耗 515
37.1 STM32的電源管理簡介 515
37.1.1 電源監控器 515
37.1.2 STM32的電源系統 516
37.1.3 STM32的功耗模式 517
37.2 電源管理相關的庫函數及命令 519
37.2.1 配置PVD監控功能 519
37.2.2 WFI與WFE命令 520
37.2.3 進入停止模式 520
37.2.4 進入待機模式 521
37.3 PWR——睡眠模式實驗 522
37.3.1 硬件設計 522
37.3.2 軟件設計 522
37.3.3 下載驗證 525
37.4 PWR——停止模式實驗 525
37.4.1 硬件設計 525
37.4.2 軟件設計 525
37.4.3 下載驗證 529
37.5 PWR——待機模式實驗 529
37.5.1 硬件設計 529
37.5.2 軟件設計 529
37.5.3 下載驗證 532
37.6 PWR——PVD電源監控實驗 532
37.6.1 硬件設計 532
37.6.2 軟件設計 534
37.6.3 下載驗證 537
第38章 MDK的編譯過程及文件類型全解 538
38.1 編譯過程 538
38.1.1 編譯過程簡介 538
38.1.2 具體工程中的編譯過程 539
38.2 程序的組成、存儲與運行 540
38.2.1 CODE、RO、RW、ZI Data域及堆棧空間 540
38.2.2 程序的存儲與運行 541
38.3 編譯工具鏈 542
38.3.1 設置環境變量 542
38.3.2 armcc、armasm及armlink 544
38.3.3 armar、fromelf及用戶指令 548
38.4 MDK工程的文件類型 549
38.4.1 uvprojx、uvoptx及uvguix工程文件 550
38.4.2 源文件 553
38.4.3 Output目錄下生成的文件 553
38.4.4 Listing目錄下的文件 574
38.4.5 sct分散加載文件的格式與應用 581
38.5 實驗:自動分配變量到指定的SRAM空間 589
38.5.1 補充關于“__attribute__”關鍵字的說明 590
38.5.2 硬件設計 590
38.5.3 軟件設計 590
38.5.4 下載驗證 598
38.6 實驗:優先使用內部SRAM并把堆區分配到指定空間 598
38.6.1 硬件設計 598
38.6.2 軟件設計 598
38.6.3 下載驗證 604
第39章 在SRAM中調試代碼 605
39.1 在RAM中調試代碼 605
39.2 STM32的啟動方式 606
39.3 內部Flash的啟動過程 607
39.4 實驗:在內部SRAM中調試代碼 609
39.4.1 硬件設計 609
39.4.2 軟件設計 609
39.4.3 下載驗證 618
第40章 讀寫內部Flash 619
40.1 STM32的內部Flash簡介 619
40.2 對內部Flash的寫入過程 621
40.3 查看工程的空間分布 622
40.4 操作內部Flash的庫函數 624
40.5 實驗:讀寫內部Flash 627
40.5.1 硬件設計 627
40.5.2 軟件設計 627
40.5.3 下載驗證 629
第41章 設置Flash的讀寫保護及解除 630
41.1 選項字節與讀寫保護 630
41.1.1 選項字節的內容 630
41.1.2 RDP讀保護 632
41.1.3 WRP寫保護 633
41.2 修改選項字節的過程 633
41.3 操作選項字節的庫函數 633
41.4 實驗:設置讀寫保護及解除 638
41.4.1 硬件設計 638
41.4.2 軟件設計 638
41.4.3 下載驗證 642
第42章 OV7725攝像頭驅動 643
42.1 攝像頭簡介 643
42.1.1 數字攝像頭與模擬攝像頭的區別 643
42.1.2 CCD與CMOS的區別 644
42.2 OV7725攝像頭 644
42.2.1 OV7725傳感器簡介 644
42.2.2 OV7725引腳及功能框圖剖析 645
42.2.3 SCCB時序 646
42.2.4 OV7725的寄存器 647
42.2.5 像素數據輸出時序 648
42.2.6 FIFO讀寫時序 649
42.2.7 攝像頭的驅動原理 652
42.3 攝像頭驅動實驗 655
42.3.1 硬件設計 655
42.3.2 軟件設計 656
42.3.3 下載驗證 678
第43章 移植Huawei LiteOS到STM32 679
43.1 Huawei LiteOS簡介 679
43.2 Huawei LiteOS內核移植 680
43.2.1 Huawei LiteOS內核簡介 680
43.2.2 內核源代碼簡介 682
43.2.3 內核移植詳細介紹 683
43.2.4 Huawei LiteOS多任務編程 691
本書主要介紹STM32的庫函數,以及如何使用庫的方式進行開發,使初學者能夠在此基礎上迅速入門,掌握STM32的開發方法。本書基于ARM—CortexM3內核的STM32F103芯片,緊緊圍繞“庫”展開,系統地講述了STM32固件庫的原理、使用方法。
pagetop