|
-- 會員 / 註冊 --
|
|
|
|
STM32庫開發實戰指南(第2版):基于STM32F103 ( 簡體 字) |
作者:劉火良 楊森 | 類別:1. -> 電腦組織與體系結構 -> 單晶片 -> STM32 |
譯者: |
出版社:機械工業出版社 | 3dWoo書號: 46925 詢問書籍請說出此書號!【有庫存】 NT售價: 495 元 |
出版日:6/1/2017 |
頁數:691 |
光碟數:0 |
|
站長推薦: |
印刷:黑白印刷 | 語系: ( 簡體 版 ) |
|
加入購物車 │加到我的最愛 (請先登入會員) |
ISBN:9787111565314 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言: |
內容簡介:本書主要介紹STM32的庫函數,以及如何使用庫的方式進行開發,使初學者能夠在此基礎上迅速入門,掌握STM32的開發方法。本書基于ARM—CortexM3內核的STM32F103芯片,緊緊圍繞“庫”展開,系統地講述了STM32固件庫的原理、使用方法。 |
目錄:第一部分 基礎篇 第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 |
序: |
|