書名: | STM32庫開發實戰指南:基於STM32F4|5089910 |
圖書定價: | 129元 |
圖書作者: | 劉火良;楊森 |
齣版社: | 機械工業齣版社 |
齣版日期: | 2017/2/1 0:00:00 |
ISBN號: | 9787111557456 |
開本: | 16開 |
頁數: | 0 |
版次: | 1-1 |
作者簡介 |
劉火良,網名野火,是目前國內大的電子工程師社區阿莫論壇的版主,也是業內暢銷的STM32開發闆供應商野火嵌入式工作室的聯閤創始人。野火工作室是嵌入式開發方式中庫開發方式的倡導者,也是針對初學者在業內推動學習庫開發方法的排頭兵。 |
內容簡介 |
本書的主要內容將著重介紹STM32的庫函數,以及如何使用庫的方式進行開發。使初學者能夠快速入門能夠在此基礎上迅速入門,掌握STM32的開發方法。本書內容基於ARM-CortexM3內核的STM32F429芯片,緊緊圍繞“庫”展開,係統地講述瞭STM32固件庫的原理、使用方法。 |
目錄 |
前言 第1章 如何安裝KEIL5 1 1.1 溫馨提示 1 1.2 獲取KEIL5安裝包 1 1.3 開始安裝KEIL5 1 1.4 安裝STM32芯片包 3 第2章 如何用DAP仿真器下載程序 6 2.1 仿真器簡介 6 2.2 硬件連接 6 2.3 仿真器配置 6 2.4 選擇目標闆 9 2.5 下載程序 9 第3章 初識STM32 10 3.1 什麼是STM32 10 3.2 STM32能做什麼 10 3.2.1 智能手環 11 3.2.2 微型四軸飛行器 12 3.2.3 淘寶眾籌 12 3.3 STM32選型 13 3.3.1 STM32分類 13 3.3.2 STM32命名方法 14 3.3.3 選擇閤適的MCU 14 第4章 寄存器 17 4.1 寄存器簡介 17 4.2 STM32的外觀 17 4.3 芯片裏麵有什麼 18 4.4 存儲器映射 21 4.5 寄存器映射 23 4.5.1 STM32的外設地址映射 23 4.5.2 C語言對寄存器的封裝 26 第5章 新建工程——寄存器版 31 5.1 新建本地工程文件夾工程 31 5.1.1 新建本地工程文件夾 31 5.1.2 新建工程 32 5.2 下載程序 38 第6章 使用寄存器點亮LED 39 6.1 GPIO簡介 39 6.2 GPIO框圖剖析 39 6.2.1 基本結構分析 39 6.2.2 GPIO工作模式 42 6.3 實驗:使用寄存器點亮LED 43 6.3.1 硬件連接 44 6.3.2 啓動文件 44 6.3.3 stm32f4xx.h文件 46 6.3.4 main文件 47 6.3.5 下載驗證 51 第7章 自己寫庫——構建庫函數雛形 52 7.1 STM32函數庫簡介 52 7.2 采用庫來開發及學習的原因 53 7.3 實驗:構建庫函數雛形 53 7.3.1 修改寄存器地址封裝 54 7.3.2 定義訪問外設的結構體指針 55 7.3.3 定義初始化結構體 59 7.3.4 定義引腳模式的枚舉類型 60 7.3.5 定義GPIO初始化函數 62 7.3.6 使用函數點亮LED 64 7.3.7 下載驗證 66 7.3.8 總結 66 第8章 初識STM32標準庫 67 8.1 CMSIS標準及庫層次關係 67 8.1.1 庫目錄、文件簡介 68 8.1.2 各庫文件間的關係 74 8.2 使用幫助文檔 75 8.2.1 常用官方資料 75 8.2.2 初識庫函數 76 第9章 新建工程——庫函數版 78 9.1 新建本地工程文件夾 78 9.2 新建工程 79 9.3 配置魔術棒選項卡 82 9.4 下載器配置 85 9.5 選擇Flash大小 86 第10章 GPIO輸齣——使用固件庫點亮LED 88 10.1 硬件設計 88 10.2 軟件設計 88 10.2.1 編程要點 89 10.2.2 代碼分析 89 10.2.3 下載驗證 94 10.3 STM32標準庫補充知識 94 第11章 GPIO輸入——按鍵檢測 98 11.1 硬件設計 98 11.2 軟件設計 99 11.2.1 編程要點 99 11.2.2 代碼分析 99 11.2.3 下載驗證 102 第12章 GPIO——位帶操作 103 12.1 位帶簡介 103 12.1.1 外設位帶區 103 12.1.2 SRAM位帶區 104 12.1.3 位帶區和位帶彆名區地址轉換 104 12.2 GPIO位帶操作 105 第13章 啓動文件 108 13.1 啓動文件簡介 108 13.2 查找ARM匯編指令 108 13.3 啓動文件代碼講解 109 第14章 RCC——使用HSE/HSI配置時鍾 116 14.1 RCC主要作用——時鍾部分 116 14.2 RCC框圖剖析——時鍾樹 116 14.2.1 係統時鍾 116 14.2.2 其他時鍾 121 14.3 配置係統時鍾實驗 122 14.3.1 使用HSE 122 14.3.2 使用HSI 122 14.3.3 硬件設計 123 14.3.4 軟件設計 123 14.3.5 下載驗證 129 第15章 STM32中斷應用概覽 130 15.1 異常類型 130 15.2 NVIC簡介 131 15.2.1 NVIC寄存器簡介 131 15.2.2 NVIC中斷配置固件庫 132 15.3 優先級的定義 132 15.3.1 優先級定義 132 15.3.2 優先級分組 133 15.4 中斷編程 134 第16章 EXTI——外部中斷/事件控製器 136 16.1 EXTI簡介 136 16.2 EXTI功能框圖 136 16.3 中斷/事件綫 138 16.4 EXTI初始化結構體詳解 139 16.5 外部中斷控製實驗 139 16.5.1 硬件設計 140 16.5.2 軟件設計 140 16.5.3 下載驗證 144 第17章 SysTick——係統定時器 145 17.1 SysTick簡介 145 17.2 SysTick寄存器介紹 145 17.3 SysTick定時實驗 146 17.3.1 硬件設計 146 17.3.2 軟件設計 146 第18章 通信的基本概念 152 18.1 串行通信與並行通信 152 18.2 全雙工、半雙工及單工通信 153 18.3 同步通信與異步通信 153 18.4 通信速率 154 第19章 USART——串口通信 155 19.1 串口通信協議簡介 155 19.1.1 物理層 155 19.1.2 協議層 158 19.2 STM32的USART簡介 159 19.3 USART功能框圖 160 19.4 USART初始化結構體詳解 166 19.5 USART1接發通信實驗 167 19.5.1 硬件設計 168 19.5.2 軟件設計 168 19.5.3 下載驗證 173 19.6 USART1指令控製RGB彩燈實驗 174 19.6.1 硬件設計 174 19.6.2 軟件設計 174 19.6.3 下載驗證 179 第20章 DMA 180 20.1 DMA簡介 180 20.2 DMA功能框圖 180 20.3 DMA數據配置 184 20.4 DMA初始化結構體詳解 188 20.5 DMA存儲器到存儲器模式實驗 190 20.5.1 硬件設計 190 20.5.2 軟件設計 190 20.5.3 下載驗證 195 20.6 DMA存儲器到外設模式實驗 195 20.6.1 硬件設計 195 20.6.2 軟件設計 195 20.6.3 下載驗證 199 第21章 常用存儲器介紹 200 21.1 存儲器種類 200 21.2 RAM存儲器 200 21.2.1 DRAM 201 21.2.2 SRAM 202 21.2.3 DRAM與SRAM的應用場閤 202 21.3 非易失性存儲器 202 21.3.1 ROM存儲器 202 21.3.2 Flash存儲器 203 第22章 I2C——讀寫EEPROM 205 22.1 I2C協議簡介 205 22.1.1 I2C物理層 205 22.1.2 協議層 206 22.2 STM32的I2C特性及架構 209 22.2.1 STM32的I2C外設簡介 209 22.2.2 STM32的I2C架構剖析 210 22.2.3 通信過程 212 22.3 I2C初始化結構體詳解 213 22.4 I2C——讀寫EEPROM實驗 215 22.4.1 硬件設計 215 22.4.2 軟件設計 216 22.4.3 下載驗證 234 第23章SPI——讀寫串行Flash 235 23.1 SPI協議簡介 235 23.1.1 SPI物理層 235 23.1.2 協議層 236 23.2 STM32的SPI特性及架構 238 23.2.1 STM32的SPI外設簡介 238 23.2.2 STM32的SPI架構剖析 239 23.2.3 通信過程 241 23.3 SPI初始化結構體詳解 242 23.4 SPI——讀寫串行Flash實驗 243 23.4.1 硬件設計 243 23.4.2 軟件設計 244 23.4.3 下載驗證 264 第24章串行Flash文件係統FatFs 265 24.1 文件係統 265 24.2 FatFs文件係統簡介 266 24.2.1 FatFs的目錄結構 266 24.2.2 FatFs幫助文檔 266 24.2.3 FatFs源碼 267 24.3 FatFs文件係統移植實驗 268 24.3.1 FatFs程序結構圖 268 24.3.2 硬件設計 269 24.3.3 FatFs移植步驟 269 24.3.4 FatFs底層設備驅動函數 271 24.3.5 FatFs功能配置 276 24.3.6 FatFs功能測試 277 24.3.7 下載驗證 280 24.4 FatFs功能使用實驗 281 24.4.1 硬件設計 281 24.4.2 軟件設計 281 24.4.3 下載驗證 286 第25章FMC——擴展外部SDRAM 287 25.1 SDRAM控製原理 287 25.1.1 SDRAM信號綫 288 25.1.2 控製邏輯 289 25.1.3 地址控製 289 25.1.4 SDRAM的存儲陣列 289 25.1.5 數據輸入輸齣 289 25.1.6 SDRAM的命令 290 25.1.7 SDRAM的初始化流程 295 25.1.8 SDRAM的讀寫流程 296 25.2 FMC簡介 297 25.3 FMC框圖剖析 298 25.4 FMC的地址映射 300 25.5 SDRAM時序結構體 302 25.6 SDRAM初始化結構體 303 25.7 SDRAM命令結構體 304 25.8 FMC——擴展外部SDRAM實驗 305 25.8.1 硬件設計 305 25.8.2 軟件設計 305 25.8.3 下載驗證 316 第26章LTDC/DMA2D——液晶顯示 317 26.1 顯示器簡介 317 26.1.1 液晶顯示器 317 26.1.2 LED和OLED顯示器 318 26.1.3 顯示器的基本參數 319 26.2 液晶屏控製原理 319 26.2.1 液晶麵闆的控製信號 320 26.2.2 液晶數據傳輸時序 321 26.2.3 顯存 323 26.3 LTDC液晶控製器簡介 323 26.3.1 圖像數據混閤 323 26.3.2 LTDC結構框圖剖析 324 26.4 DMA2D圖形加速器簡介 327 26.5 LTDC初始化結構體 329 26.6 LTDC層級初始化結構體 331 26.7 DMA2D初始化結構體 334 26.8 LTDC/DMA2D——液晶顯示實驗 336 26.8.1 硬件設計 336 26.8.2 軟件設計 338 26.8.3 下載驗證 358 第27章LTDC——液晶顯示中英文 359 27.1 字符編碼 359 27.1.1 ASCII編碼 359 27.1.2 中文編碼 362 27.1.3 Unicode字符集和編碼 365 27.1.4 UTF-32 365 27.1.5 UTF-16 365 27.1.6 UTF-8 366 27.1.7 BOM 367 27.2 字模簡介 367 27.2.1 字模的構成 368 27.2.2 字模顯示原理 368 27.2.3 如何製作字模 370 27.2.4 字模尋址公式 371 27.2.5 存儲字模文件 372 27.3 LTDC——各種模式的液晶顯示字符實驗 372 27.3.1 硬件設計 373 27.3.2 顯示ASCII編碼的字符 373 27.3.3 顯示GB2312編碼的字符 382 27.3.4 顯示任意大小的字符 391 27.3.5 下載驗證 398 第28章電容觸摸屏——觸摸畫闆 399 28.1 觸摸屏簡介 399 28.1.1 電阻觸摸屏檢測原理 399 28.1.2 電容觸摸屏檢測原理 401 28.2 電容觸摸屏控製芯片 402 28.2.1 GT9157芯片的引腳 403 28.2.2 上電時序與I2C設備地址 404 28.2.3 寄存器配置 404 28.2.4 讀取坐標信息 406 28.3 電容觸摸屏——觸摸畫闆實驗 408 28.3.1 硬件設計 408 28.3.2 軟件設計 409 28.3.3 下載驗證 430 第29章ADC——電壓采集 431 29.1 ADC簡介 431 29.2 ADC功能框圖剖析 431 29.2.1 ADC功能 431 29.2.2 電壓轉換 437 29.3 ADC初始化結構體詳解 437 29.4 獨立模式單通道采集實驗 438 29.4.1 硬件設計 439 29.4.2 軟件設計 439 29.4.3 下載驗證 443 29.5 獨立模式多通道采集實驗 443 29.5.1 硬件設計 443 29.5.2 軟件設計 443 29.5.3 下載驗證 449 29.6 三重ADC交替模式采集實驗 449 29.6.1 硬件設計 449 29.6.2 軟件設計 450 29.6.3 下載驗證 455 第30章TIM——基本定時器 456 30.1 TIM簡介 456 30.2 基本定時器 456 30.3 基本定時器功能框圖 458 30.4 定時器初始化結構體詳解 460 30.5 基本定時器定時實驗 461 30.5.1 硬件設計 461 30.5.2 軟件設計 461 30.5.3 下載驗證 464 第31章TIM——高級定時器 465 31.1 高級控製定時器 465 31.2 高級控製定時器功能框圖 466 31.3 輸入捕獲應用 476 31.3.1 測量脈寬或者頻率 476 31.3.2 PWM輸入模式 477 31.4 輸齣比較應用 478 31.5 定時器初始化結構體詳解 480 31.6 PWM互補輸齣實驗 483 31.6.1 硬件設計 484 31.6.2 軟件設計 484 31.6.3 下載驗證 488 31.7 PWM輸入捕獲實驗 489 31.7.1 硬件設計 489 31.7.2 軟件設計 489 31.7.3 下載驗證 494 第32章TIM——電容按鍵檢測 495 32.1 電容按鍵原理 495 32.2 電容按鍵檢測實驗 496 32.2.1 硬件設計 497 32.2.2 軟件設計 497 32.2.3 下載驗證 504 第33章SDIO——SD卡讀寫測試 505 33.1 SDIO簡介 505 33.2 SD卡物理結構 506 33.3 SDIO總綫 507 33.3.1 總綫拓撲 507 33.3.2 總綫協議 508 33.3.3 命令 510 33.3.4 響應 512 33.4 SD卡的操作模式及切換 514 33.4.1 SD卡的操作模式 514 33.4.2 卡識彆模式 514 33.4.3 數據傳輸模式 516 33.5 STM32的SDIO功能框圖 516 33.6 SDIO初始化結構體 521 33.7 SDIO命令初始化結構體 522 33.8 SDIO數據初始化結構體 523 33.9 SD卡讀寫測試實驗 523 33.9.1 硬件設計 524 33.9.2 軟件設計 524 33.9.3 下載驗證 549 第34章基於SD卡的FatFs文件係統 550 34.1 FatFs移植步驟 550 34.2 FatFs接口函數 552 34.3 FatFs功能測試 557 第35章I2S——音頻播放與錄音輸入 561 35.1 I2S簡介 561 35.1.1 數字音頻技術 561 35.1.2 I2S總綫接口 562 35.1.3 音頻數據傳輸協議標準 562 35.2 I2S功能框圖 565 35.3 WM8978音頻編譯碼器 567 35.4 WAV格式文件 569 35.4.1 RIFF文件規範 570 35.4.2 WAV文件 570 35.4.3 WAV文件實例分析 571 35.5 I2S初始化結構體詳解 571 35.6 錄音與迴放實驗 572 35.6.1 硬件設計 573 35.6.2 軟件設計 573 35.6.3 下載驗證 601 35.7 MP3播放器 601 35.7.1 MP3文件結構 602 35.7.2 MP3解碼庫 605 35.7.3 Helix解碼庫移植 606 35.7.4 MP3播放器功能實現 606 35.7.5 下載驗證 614 第36章ETH——LwIP以太網通信 615 36.1 互聯網模型 615 36.2 以太網 616 36.2.1 PHY層 616 36.2.2 MAC子層 617 36.3 TCP/IP協議棧 618 36.3.1 需要協議棧的原因 619 36.3.2 各網絡層的功能 619 36.4 以太網外設 620 36.4.1 SMI接口 621 36.4.2 MII和RMII接口 623 36.4.3 MAC數據包發送和接收 624 36.4.4 MAC過濾 626 36.5 PHY:LAN8720A 626 36.6 LwIP:輕型TCP/IP協議棧 629 36.7 ETH初始化結構體詳解 629 36.8 以太網通信實驗:無操作係統LwIP移植 635 36.8.1 硬件設計 635 36.8.2 移植步驟 635 36.8.3 下載驗證 661 36.9 基於μCOS-III移植LwIP實驗 663 第37章CAN——通信實驗 680 37.1 CAN協議簡介 680 37.1.1 CAN物理層 680 37.1.2 協議層 684 37.2 STM32的CAN外設簡介 690 37.3 CAN初始化結構體 698 37.4 CAN發送及接收結構體 700 37.5 CAN篩選器結構體 701 37.6 CAN——雙機通信實驗 703 37.6.1 硬件設計 703 37.6.2 軟件設計 704 37.6.3 下載驗證 713 第38章RS-485通信實驗 714 38.1 RS-485通信協議簡介 714 38.2 RS-485——雙機通信實驗 715 38.2.1 硬件設計 715 38.2.2 軟件設計 716 38.2.3 下載驗證 723 第39章電源管理——實現低功耗 724 39.1 STM32的電源管理簡介 724 39.1.1 電源監控器 724 39.1.2 STM32的電源係統 726 39.1.3 STM32的功耗模式 727 39.2 電源管理相關的庫函數及命令 729 39.2.1 配置PVD監控功能 729 39.2.2 WFI與WFE命令 729 39.2.3 進入停止模式 730 39.2.4 進入待機模式 731 39.3 PWR——睡眠模式實驗 732 39.3.1 硬件設計 732 39.3.2 軟件設計 732 39.3.3 下載驗證 735 39.4 PWR——停止模式實驗 735 39.4.1 硬件設計 735 39.4.2 軟件設計 735 39.4.3 下載驗證 739 39.5 PWR——待機模式實驗 739 39.5.1 硬件設計 740 39.5.2 軟件設計 740 39.5.3 下載驗證 743 39.6 PWR——PVD電源監控實驗 743 39.6.1 硬件設計 743 39.6.2 軟件設計 745 39.6.3 下載驗證 747 第40章RTC——實時時鍾 748 40.1 RTC簡介 748 40.2 RTC功能框圖解析 748 40.3 RTC初始化結構體講解 751 40.4 RTC時間結構體講解 752 40.5 RTC日期結構體講解 753 40.6 RTC鬧鍾結構體講解 753 40.7 RTC—日曆實驗 754 40.7.1 硬件設計 754 40.7.2 軟件設計 754 40.7.3 下載驗證 760 40.8 RTC—鬧鍾實驗 760 40.8.1 硬件設計 760 40.8.2 軟件設計 760 40.8.3 下載驗證 765 第41章DCMI——OV5640攝像頭 766 41.1 攝像頭簡介 766 41.1.1 數字攝像頭與模擬攝像頭的區彆 766 41.1.2 CCD與CMOS的區彆 767 41.2 OV5640攝像頭 767 41.2.1 OV5640傳感器簡介 769 41.2.2 OV5640引腳及功能框圖 769 41.2.3 SCCB時序 771 41.2.4 OV5640的寄存器 772 41.2.5 像素數據輸齣時序 773 41.3 STM32的DCMI接口簡介 773 41.3.1 DCMI整體框圖 774 41.3.2 DCMI接口內部結構 775 41.3.3 同步方式 775 41.3.4 捕獲模式及捕獲率 776 41.4 DCMI初始化結構體 776 41.5 DCMI——OV5640攝像頭實驗 777 41.5.1 硬件設計 777 41.5.2 軟件設計 779 41.5.3 下載驗證 797 第42章MDK的編譯過程及文件類型全解 798 42.1 編譯過程 798 42.1.1 編譯過程簡介 798 42.1.2 具體工程中的編譯過程 799 42.2 程序的組成、存儲與運行 800 42.2.1 CODE、RO、RW、ZI Data域及堆棧空間 800 42.2.2 程序的存儲與運行 801 42.3 編譯工具鏈 802 42.3.1 設置環境變量 803 42.3.2 armcc、armasm及armlink 804 42.3.3 armar、fromelf及用戶指令 807 42.4 MDK工程的文件類型 808 42.4.1 uvprojx、uvoptx、uvguix及ini工程文件 809 42.4.2 源文件 811 42.4.3 Output目錄下生成的文件 811 42.4.4 Listing目錄下的文件 831 42.4.5 sct分散加載文件的格式與應用 837 42.5 實驗:自動分配變量到外部SDRAM空間 846 42.5.1 硬件設計 846 42.5.2 軟件設計 847 42.5.3 下載驗證 853 42.6 實驗:優先使用內部SRAM並把堆區分配到SDRAM空間 853 42.6.1 硬件設計 854 42.6.2 軟件設計 854 42.6.3 下載驗證 864 第43章在SRAM中調試代碼 865 43.1 在RAM中調試代碼 865 43.2 STM32的啓動方式 865 43.3 內部Flash的啓動過程 867 43.4 實驗:在內部SRAM中調試代碼 869 43.4.1 硬件設計 869 43.4.2 軟件設計 870 43.4.3 下載驗證 877 第44章讀寫內部Flash 878 44.1 STM32的內部Flash簡介 878 44.2 對內部Flash的寫入過程 881 44.3 查看工程的空間分布 882 44.4 操作內部Flash的庫函數 884 44.5 實驗:讀寫內部Flash 887 44.5.1 硬件設計 887 44.5.2 軟件設計 887 44.5.3 下載驗證 893 第45章設置Flash的讀寫保護及解除 894 45.1 選項字節與讀寫保護 894 45.1.1 選項字節的內容 894 45.1.2 RDP讀保護級彆 896 45.1.3 PCROP代碼讀齣保護 898 45.2 修改選項字節的過程 898 45.3 操作選項字節的庫函數 899 45.4 實驗:設置讀寫保護及解除 901 45.4.1 硬件設計 902 45.4.2 軟件設計 902 45.4.3 下載驗證 908 |
评分
评分
评分
评分
评分
评分
评分
评分
本站所有內容均為互聯網搜索引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度,google,bing,sogou 等
© 2025 tushu.tinynews.org All Rights Reserved. 求知書站 版权所有