|
-- 會員 / 註冊 --
|
|
|
|
STM32Cube高效開發教程(基礎篇) ( 簡體 字) |
作者:王維波 鄢志丹 王釗 | 類別:1. -> 電腦組織與體系結構 -> 單晶片 -> STM32 |
譯者: |
出版社:人民郵電出版社 | 3dWoo書號: 55109 詢問書籍請說出此書號!【有庫存】 NT售價: 600 元 |
出版日:9/1/2021 |
頁數:487 |
光碟數:0 |
|
站長推薦: |
印刷:黑白印刷 | 語系: ( 簡體 版 ) |
|
加入購物車 │加到我的最愛 (請先登入會員) |
ISBN:9787115551771 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言: |
內容簡介:STM32CubeMX和STM32CubeIDE是ST公司提供的用于STM32開發的免費工具軟件,是STM32Cube生態系統的核心工具軟件。本書首先詳細介紹這兩個軟件的用法,然后以STM32F407為研究對象,采用STM32Cube開發方式介紹STM32F407各種系統功能和常用外設的編程開發,包括外設基本工作原理和接口電路、HAL驅動程序功能和使用方法,以及針對一個STM32F407開發板的完整編程示例。通過閱讀本書,讀者可以掌握STM32Cube開發方式和工具軟件的使用,掌握基于HAL庫的STM32F407系統功能和常用外設的編程開發方法。 本書適合具有C語言、微機原理或單片機基礎,想要學習STM32最新開發技術的讀者閱讀,可以作為高等院校電子、自動化、計算機、測控等專業的教材,也可作為STM32應用開發者的參考書。 |
目錄:第一部分 軟硬件基礎 第1章 概述 2 1.1 STM32系列單片機 2 1.2 STM32的器件驅動庫 3 1.2.1 標準外設庫 3 1.2.2 HAL/LL庫 4 1.3 STM32Cube生態系統 4 1.3.1 嵌入式軟件 5 1.3.2 軟件工具 6 1.4 STM32Cube開發方式 8 第2章 STM32F407和開發板 10 2.1 STM32F407簡介 10 2.1.1 功能特性 10 2.1.2 內部結構 10 2.1.3 引腳定義 13 2.1.4 最小系統參考設計 14 2.2 STM32F407開發板 17 2.2.1 開發板功能 17 2.2.2 開發板基本電路 20 2.3 仿真器 23 第3章 STM32CubeMX的使用 24 3.1 安裝STM32CubeMX 24 3.2 安裝MCU固件包 25 3.2.1 軟件庫文件夾設置 25 3.2.2 管理嵌入式軟件包 26 3.2.3 MCU固件庫文件組成 28 3.3 軟件功能和基本使用 29 3.3.1 軟件界面 29 3.3.2 新建項目 32 3.3.3 MCU圖形化配置界面總覽 35 3.3.4 MCU配置 36 3.3.5 時鐘配置 41 3.3.6 項目管理 45 3.3.7 生成報告和代碼 48 3.4 項目示例:LED初始輸出 49 3.4.1 硬件電路 49 3.4.2 CubeMX項目設置 49 3.4.3 生成CubeIDE項目代碼 50 第4章 STM32CubeIDE的使用 51 4.1 安裝STM32CubeIDE 51 4.2 基本概念和MCU固件庫設置 52 4.2.1 啟動軟件 52 4.2.2 打開項目 53 4.2.3 CubeIDE的一些基本概念 55 4.2.4 STM32Cube軟件庫設置 57 4.3 C/C++場景的界面功能和操作 58 4.3.1 主要的視圖 58 4.3.2 工具欄功能 59 4.3.3 文本編輯器功能和操作 61 4.4 CubeMX生成項目的文件組成 63 4.4.1 CMSIS驅動程序文件 63 4.4.2 HAL驅動程序文件 65 4.4.3 用戶程序文件 66 4.4.4 啟動文件 71 4.4.5 根目錄下的文件 71 4.4.6 Include搜索路徑 72 4.5 項目管理、構建和下載調試 72 4.5.1 項目管理 72 4.5.2 項目構建 74 4.5.3 下載和調試 75 4.6 使用內置的CubeMX 79 4.6.1 創建項目 79 4.6.2 配置MCU和生成代碼 80 4.7 CubeIDE使用偏好設置 81 4.8 HAL庫的一些基本問題 83 4.8.1 基本數據類型 83 4.8.2 一些通用定義 83 4.8.3 獲取HAL庫幫助信息 84 第5章 STM32CubeMonitor的使用 85 5.1 STM32CubeMonitor功能簡介 85 5.2 CubeMonitor基本操作 87 5.2.1 Node-RED中的一些基本概念 87 5.2.2 設計模式界面和基本操作 88 5.2.3 程序部署和Dashboard界面 91 5.3 CubeMonitor基本功能使用示例 92 5.3.1 STM32 MCU項目 92 5.3.2 變量監測的基本操作 95 5.3.3 監測外設寄存器的值 104 5.3.4 監測變量的數值顯示 106 5.3.5 修改變量的值 110 5.4 CubeMonitor的使用小結 113 第二部分 系統功能和常用外設的使用 第6章 GPIO輸入/輸出 116 6.1 GPIO功能概述 116 6.2 GPIO的HAL驅動程序 117 6.3 GPIO使用示例 120 6.3.1 示例功能和CubeMX配置 120 6.3.2 項目初始化代碼分析 122 6.3.3 編寫按鍵和LED的驅動程序 124 6.3.4 使用驅動程序實現示例功能 127 6.4 作為公共驅動程序 130 第7章 中斷系統和外部中斷 131 7.1 STM32F407的中斷 131 7.1.1 中斷向量表 131 7.1.2 中斷優先級 134 7.1.3 中斷設置相關HAL驅動程序 135 7.2 外部中斷EXTI 136 7.2.1 外部中斷功能和外部中斷線 136 7.2.2 外部中斷相關HAL函數 138 7.3 外部中斷使用示例 141 7.3.1 示例功能和CubeMX項目設置 141 7.3.2 項目初始代碼分析 142 7.3.3 編寫用戶功能代碼 145 7.3.4 中斷優先級的測試 146 第8章 FSMC連接TFT LCD 148 8.1 FSMC連接TFT LCD的原理 148 8.1.1 FSMC接口 148 8.1.2 TFT LCD接口 149 8.1.3 FSMC與TFT LCD的連接 150 8.2 FSMC連接LCD的電路和接口初始化 151 8.2.1 電路連接 151 8.2.2 示例功能和CubeMX項目設置 153 8.2.3 初始代碼分析 155 8.3 使用LCD驅動程序 159 8.3.1 設置搜索路徑 159 8.3.2 LCD驅動程序的改寫 161 8.3.3 LCD驅動程序的原理和功能 162 8.3.4 LCD驅動程序的使用 171 8.4 作為公共驅動程序 172 第9章 基礎定時器 174 9.1 定時器概述 174 9.2 基礎定時器內部結構和功能 175 9.3 基礎定時器HAL驅動程序 177 9.3.1 基礎定時器主要函數 177 9.3.2 其他通用操作函數 179 9.3.3 中斷處理 180 9.4 外設的中斷處理概念小結 182 9.5 基礎定時器使用示例 185 9.5.1 示例功能和CubeMX項目配置 185 9.5.2 程序功能實現 187 第10章 通用定時器 192 10.1 通用定時器功能概述 192 10.1.1 功能概述 192 10.1.2 結構框圖 192 10.2 典型功能原理和HAL驅動 196 10.2.1 生成PWM波 196 10.2.2 輸出比較 197 10.2.3 輸入捕獲 199 10.2.4 PWM輸入模式 200 10.2.5 定時器同步 201 10.2.6 通用定時器中斷事件和回調函數 202 10.3 示例1:生成PWM波 204 10.3.1 電路原理和CubeMX項目配置 204 10.3.2 輸出固定占空比PWM波 206 10.3.3 輸出可變占空比PWM波 208 10.4 示例2:輸出比較 210 10.4.1 示例功能和CubeMX項目設置 210 10.4.2 程序功能實現 211 10.5 示例3:輸入PWM 213 10.5.1 示例功能和CubeMX項目設置 213 10.5.2 程序功能實現 215 第11章 實時時鐘 220 11.1 RTC功能概述 220 11.1.1 RTC的功能 220 11.1.2 工作原理 220 11.1.3 RTC的中斷和復用引腳 223 11.1.4 RTC的HAL基礎驅動程序 224 11.2 周期喚醒和鬧鐘 227 11.2.1 周期喚醒相關HAL函數 227 11.2.2 鬧鐘相關HAL函數 229 11.2.3 示例功能和電路 230 11.2.4 CubeMX項目配置 230 11.2.5 程序功能實現 234 11.3 備份寄存器 239 11.3.1 備份寄存器的功能 239 11.3.2 示例功能與CubeMX項目設置 240 11.3.3 程序實現和運行效果 240 11.4 入侵檢測和時間戳 246 11.4.1 入侵檢測的功能 246 11.4.2 示例功能與CubeMX項目設置 247 11.4.3 程序功能實現 249 第12章 USART/UART通信 255 12.1 USART/UART接口概述 255 12.1.1 USART/UART接口信號 255 12.1.2 開發板上的串口電路 256 12.1.3 串口通信參數 259 12.2 串口的HAL驅動程序 259 12.2.1 常用功能函數 259 12.2.2 常用的宏函數 262 12.2.3 中斷事件與回調函數 263 12.3 串口通信示例 264 12.3.1 硬件電路與示例功能 264 12.3.2 CubeMX項目設置 265 12.3.3 程序功能實現 267 12.3.4 接收不定長度數據的改進代碼 273 第13章 DMA 276 13.1 DMA功能概述 276 13.1.1 DMA簡介 276 13.1.2 DMA傳輸屬性 277 13.2 DMA的HAL驅動程序 280 13.2.1 DMA的HAL函數概述 280 13.2.2 DMA傳輸初始化配置 280 13.2.3 啟動DMA數據傳輸 282 13.2.4 DMA的中斷 282 13.3 串口的DMA傳輸示例 284 13.3.1 示例功能與CubeMX項目設置 284 13.3.2 程序功能實現 286 第14章 ADC 295 14.1 ADC功能概述 295 14.1.1 ADC的特性 295 14.1.2 ADC的工作原理 295 14.1.3 多重ADC模式 299 14.2 ADC的HAL驅動程序 299 14.2.1 常規通道 299 14.2.2 注入通道 303 14.2.3 多重ADC 303 14.3 示例1:軟件啟動ADC轉換 303 14.3.1 電路和示例功能 303 14.3.2 CubeMX項目設置 304 14.3.3 程序功能實現 306 14.4 示例2:定時器觸發ADC轉換 308 14.4.1 示例功能和CubeMX項目設置 308 14.4.2 程序功能實現 310 14.5 示例3:多通道和DMA傳輸 313 14.5.1 示例功能和CubeMX項目設置 313 14.5.2 程序功能實現 315 14.6 示例4:雙ADC同步轉換 319 14.6.1 示例功能與CubeMX項目設置 319 14.6.2 程序功能實現 320 第15章 DAC 325 15.1 DAC功能概述 325 15.1.1 DAC的結構和特性 325 15.1.2 功能說明 326 15.2 DAC的HAL驅動程序 328 15.2.1 DAC驅動宏函數 328 15.2.2 DAC驅動功能函數 328 15.3 示例1:軟件觸發DAC轉換 332 15.3.1 開發板上的DAC電路 332 15.3.2 示例功能和CubeMX項目設置 332 15.3.3 程序功能實現 333 15.4 示例2:輸出三角波 335 15.4.1 示例功能和CubeMX項目設置 335 15.4.2 程序功能實現 336 15.5 示例3:使用DMA輸出自定義波形 339 15.5.1 示例功能和CubeMX項目設置 339 15.5.2 程序功能實現 340 第16章 SPI通信 343 16.1 SPI接口和通信協議 343 16.1.1 SPI硬件接口 343 16.1.2 SPI傳輸協議 343 16.1.3 STM32F407的SPI接口 345 16.2 SPI的HAL驅動程序 346 16.2.1 SPI寄存器操作的宏函數 346 16.2.2 SPI初始化和阻塞式數據傳輸 347 16.2.3 中斷方式數據傳輸 348 16.2.4 DMA方式數據傳輸 349 16.3 Flash存儲芯片W25Q128 350 16.3.1 硬件接口和連接 350 16.3.2 存儲空間劃分 351 16.3.3 數據讀寫的原則 351 16.3.4 操作指令 351 16.3.5 狀態寄存器 353 16.4 示例1:輪詢方式讀寫W25Q128 354 16.4.1 示例功能與CubeMX項目設置 354 16.4.2 初始程序 356 16.4.3 編寫W25Q128的驅動程序 357 16.4.4 W25Q128功能測試 366 16.5 示例2:DMA方式讀寫W25Q128 370 16.5.1 示例功能和CubeMX項目設置 370 16.5.2 程序功能實現 371 第17章 I2C通信 377 17.1 I2C總線和通信協議 377 17.1.1 I2C總線結構 377 17.1.2 I2C總線通信協議 378 17.1.3 STM32F407的I2C接口 378 17.2 I2C的HAL驅動程序 379 17.2.1 I2C接口的初始化 379 17.2.2 阻塞式數據傳輸 379 17.2.3 中斷方式數據傳輸 381 17.2.4 DMA方式數據傳輸 381 17.3 EEPROM芯片24C02 382 17.3.1 接口和通信協議 382 17.3.2 驅動程序設計 384 17.4 讀寫24C02示例 387 17.4.1 示例功能和CubeMX項目設置 387 17.4.2 程序功能實現 388 第18章 CAN總線通信 392 18.1 CAN總線結構和傳輸協議 392 18.1.1 CAN總線結構 392 18.1.2 CAN總線傳輸協議 394 18.2 CAN外設工作原理和HAL驅動程序 397 18.2.1 片上CAN外設的功能概述 397 18.2.2 CAN模塊的基本控制 398 18.2.3 CAN模塊的測試模式 399 18.2.4 消息發送 400 18.2.5 消息接收 401 18.2.6 標識符篩選 402 18.2.7 中斷及其處理 405 18.3 開發板上的CAN接口電路 406 18.4 示例1:輪詢方式CAN通信 407 18.4.1 示例功能和CubeMX項目設置 407 18.4.2 程序功能實現 409 18.5 示例2:中斷方式CAN通信 415 18.5.1 示例功能和CubeMX項目設置 415 18.5.2 程序功能實現 415 第19章 FSMC連接外部SRAM 422 19.1 FSMC連接外部SRAM的原理 422 19.1.1 FSMC控制區域的劃分 422 19.1.2 SRAM芯片與MCU的連接 422 19.2 訪問外部SRAM的HAL驅動程序 423 19.2.1 外部SRAM初始化與控制 423 19.2.2 外部SRAM讀寫函數 424 19.2.3 直接通過指針訪問外部SRAM 425 19.2.4 DMA方式讀寫外部SRAM 426 19.3 示例1:輪詢方式讀寫外部SRAM 427 19.3.1 示例功能和CubeMX項目設置 427 19.3.2 程序功能實現 429 19.4 示例2:DMA方式讀寫外部SRAM 435 19.4.1 示例功能和CubeMX項目設置 435 19.4.2 程序功能實現 437 第20章 獨立看門狗 442 20.1 獨立看門狗的工作原理 442 20.2 獨立看門狗的HAL驅動程序 443 20.3 獨立看門狗使用示例 444 20.3.1 示例功能和CubeMX項目設置 444 20.3.2 程序功能實現 445 第21章 窗口看門狗 448 21.1 窗口看門狗的工作原理 448 21.2 窗口看門狗的HAL驅動程序 450 21.3 窗口看門狗使用示例 451 21.3.1 示例功能和CubeMX項目設置 451 21.3.2 不使用EWI中斷 452 21.3.3 使用EWI中斷 454 第22章 電源管理和低功耗模式 456 22.1 電源系統和低功耗模式 456 22.1.1 STM32F4的電源系統 456 22.1.2 STM32F4的低功耗模式 457 22.2 CubeMX的功耗計算器 458 22.2.1 PCC界面概述 458 22.2.2 步驟和序列管理 459 22.2.3 功耗分析 461 22.3 睡眠模式 462 22.3.1 睡眠模式的特點和操作 462 22.3.2 睡眠模式編程示例 464 22.4 停止模式 467 22.4.1 停止模式的特點和操作 467 22.4.2 停止模式編程示例 469 22.5 待機模式 472 22.5.1 待機模式的特點和操作 472 22.5.2 待機模式編程示例 473 附錄A CubeMX模板項目和公共驅動程序的使用 477 A.1 公共驅動程序的目錄組成 477 A.2 CubeMX模板項目 478 A.3 新建CubeMX項目后導入模板項目的配置 478 A.4 復制模板項目以新建CubeMX項目 479 A.5 在CubeIDE中設置驅動程序搜索路徑 480 附錄B 復制一個項目 482 附錄C 本書示例項目列表 483 附錄D 縮略詞 485 附參考文獻 488 |
序: |
|