注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當前位置: 首頁出版圖書科學技術計算機/網(wǎng)絡硬件、外部設備與維護STM32Cube高效開發(fā)教程:基礎篇

STM32Cube高效開發(fā)教程:基礎篇

STM32Cube高效開發(fā)教程:基礎篇

定 價:¥119.80

作 者: 王維波,鄢志丹,王釗 著
出版社: 人民郵電出版社
叢編項:
標 簽: 暫缺

ISBN: 9787115551771 出版時間: 2021-09-01 包裝: 平裝
開本: 16開 頁數(shù): 487 字數(shù):  

內(nèi)容簡介

  STM32CubeMX和STM32CubeIDE是ST公司提供的用于STM32開發(fā)的免費工具軟件,是STM32Cube生態(tài)系統(tǒng)的核心工具軟件。本書首先詳細介紹這兩個軟件的用法,然后以STM32F407為研究對象,采用STM32Cube開發(fā)方式介紹STM32F407各種系統(tǒng)功能和常用外設的編程開發(fā),包括外設基本工作原理和接口電路、HAL驅(qū)動程序功能和使用方法,以及針對一個STM32F407開發(fā)板的完整編程示例。通過閱讀本書,讀者可以掌握STM32Cube開發(fā)方式和工具軟件的使用,掌握基于HAL庫的STM32F407系統(tǒng)功能和常用外設的編程開發(fā)方法。本書適合具有C語言、微機原理或單片機基礎,想要學習STM32**開發(fā)技術的讀者閱讀,可以作為高等院校電子、自動化、計算機、測控等專業(yè)的教材,也可作為STM32應用開發(fā)者的參考書。

作者簡介

  王維波,博士、中國石油大學(華東)控制科學與工程學院教師。從事測控與儀器開發(fā)領域的教學和研究工作,主要研究方向是地球物理探測儀器開發(fā)、數(shù)據(jù)處理方法和軟件開發(fā)。參與完成國家自然科學基金、山東省重點研發(fā)計劃等多個科研項目,發(fā)表論文 20 余篇。著有《Qt 5.9 C++ 開發(fā)指南》和《Python Qt GUI 與數(shù)據(jù)可視化編程》。鄢志丹,博士、中國石油大學(華東)控制科學與工程學院教師。從事隨鉆測控技術、自抗擾控制方法、井下儀器開發(fā)、微弱信號處理等方面的研究工作。主持國家自然科學基金、中國博士后科學基金、山東省自然科學基金等 10 余個科研項目,獲授權發(fā)明專利 10 余項,發(fā)表論文 30 余篇。王釗,博士、中國石油大學(華東)控制科學與工程學院教師。從事自動化相關的教學和研究工作,主要研究方向是非線性系統(tǒng)的非光滑控制研究、故障診斷、工業(yè)過程控制等。主持山東省優(yōu)秀中青年科學家科研獎勵基金項目 1 項,發(fā)表論文 20 余篇,作為副主編編寫教材1 部。

圖書目錄

第一部分 軟硬件基礎
第1章 概述 2
1.1 STM32系列單片機 2
1.2 STM32的器件驅(qū)動庫 3
1.2.1 標準外設庫 3
1.2.2 HAL/LL庫 4
1.3 STM32Cube生態(tài)系統(tǒng) 4
1.3.1 嵌入式軟件 5
1.3.2 軟件工具 6
1.4 STM32Cube開發(fā)方式 8
第2章 STM32F407和開發(fā)板 10
2.1 STM32F407簡介 10
2.1.1 功能特性 10
2.1.2 內(nèi)部結構 10
2.1.3 引腳定義 13
2.1.4 最小系統(tǒng)參考設計 14
2.2 STM32F407開發(fā)板 17
2.2.1 開發(fā)板功能 17
2.2.2 開發(fā)板基本電路 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驅(qū)動程序文件 63
4.4.2 HAL驅(qū)動程序文件 65
4.4.3 用戶程序文件 66
4.4.4 啟動文件 71
4.4.5 根目錄下的文件 71
4.4.6 Include搜索路徑 72
4.5 項目管理、構建和下載調(diào)試 72
4.5.1 項目管理 72
4.5.2 項目構建 74
4.5.3 下載和調(diào)試 75
4.6 使用內(nèi)置的CubeMX 79
4.6.1 創(chuàng)建項目 79
4.6.2 配置MCU和生成代碼 80
4.7 CubeIDE使用偏好設置 81
4.8 HAL庫的一些基本問題 83
4.8.1 基本數(shù)據(jù)類型 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 變量監(jiān)測的基本操作 95
5.3.3 監(jiān)測外設寄存器的值 104
5.3.4 監(jiān)測變量的數(shù)值顯示 106
5.3.5 修改變量的值 110
5.4 CubeMonitor的使用小結 113
第二部分 系統(tǒng)功能和常用外設的使用
第6章 GPIO輸入/輸出 116
6.1 GPIO功能概述 116
6.2 GPIO的HAL驅(qū)動程序 117
6.3 GPIO使用示例 120
6.3.1 示例功能和CubeMX配置 120
6.3.2 項目初始化代碼分析 122
6.3.3 編寫按鍵和LED的驅(qū)動程序 124
6.3.4 使用驅(qū)動程序?qū)崿F(xiàn)示例功能 127
6.4 作為公共驅(qū)動程序 130
第7章 中斷系統(tǒng)和外部中斷 131
7.1 STM32F407的中斷 131
7.1.1 中斷向量表 131
7.1.2 中斷優(yōu)先級 134
7.1.3 中斷設置相關HAL驅(qū)動程序 135
7.2 外部中斷EXTI 136
7.2.1 外部中斷功能和外部中斷線 136
7.2.2 外部中斷相關HAL函數(shù) 138
7.3 外部中斷使用示例 141
7.3.1 示例功能和CubeMX項目設置 141
7.3.2 項目初始代碼分析 142
7.3.3 編寫用戶功能代碼 145
7.3.4 中斷優(yōu)先級的測試 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驅(qū)動程序 159
8.3.1 設置搜索路徑 159
8.3.2 LCD驅(qū)動程序的改寫 161
8.3.3 LCD驅(qū)動程序的原理和功能 162
8.3.4 LCD驅(qū)動程序的使用 171
8.4 作為公共驅(qū)動程序 172
第9章 基礎定時器 174
9.1 定時器概述 174
9.2 基礎定時器內(nèi)部結構和功能 175
9.3 基礎定時器HAL驅(qū)動程序 177
9.3.1 基礎定時器主要函數(shù) 177
9.3.2 其他通用操作函數(shù) 179
9.3.3 中斷處理 180
9.4 外設的中斷處理概念小結 182
9.5 基礎定時器使用示例 185
9.5.1 示例功能和CubeMX項目配置 185
9.5.2 程序功能實現(xiàn) 187
第10章 通用定時器 192
10.1 通用定時器功能概述 192
10.1.1 功能概述 192
10.1.2 結構框圖 192
10.2 典型功能原理和HAL驅(qū)動 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 通用定時器中斷事件和回調(diào)函數(shù) 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 程序功能實現(xiàn) 211
10.5 示例3:輸入PWM 213
10.5.1 示例功能和CubeMX項目設置 213
10.5.2 程序功能實現(xiàn) 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基礎驅(qū)動程序 224
11.2 周期喚醒和鬧鐘 227
11.2.1 周期喚醒相關HAL函數(shù) 227
11.2.2 鬧鐘相關HAL函數(shù) 229
11.2.3 示例功能和電路 230
11.2.4 CubeMX項目配置 230
11.2.5 程序功能實現(xiàn) 234
11.3 備份寄存器 239
11.3.1 備份寄存器的功能 239
11.3.2 示例功能與CubeMX項目設置 240
11.3.3 程序?qū)崿F(xiàn)和運行效果 240
11.4 入侵檢測和時間戳 246
11.4.1 入侵檢測的功能 246
11.4.2 示例功能與CubeMX項目設置 247
11.4.3 程序功能實現(xiàn) 249
第12章 USART/UART通信 255
12.1 USART/UART接口概述 255
12.1.1 USART/UART接口信號 255
12.1.2 開發(fā)板上的串口電路 256
12.1.3 串口通信參數(shù) 259
12.2 串口的HAL驅(qū)動程序 259
12.2.1 常用功能函數(shù) 259
12.2.2 常用的宏函數(shù) 262
12.2.3 中斷事件與回調(diào)函數(shù) 263
12.3 串口通信示例 264
12.3.1 硬件電路與示例功能 264
12.3.2 CubeMX項目設置 265
12.3.3 程序功能實現(xiàn) 267
12.3.4 接收不定長度數(shù)據(jù)的改進代碼 273
第13章 DMA 276
13.1 DMA功能概述 276
13.1.1 DMA簡介 276
13.1.2 DMA傳輸屬性 277
13.2 DMA的HAL驅(qū)動程序 280
13.2.1 DMA的HAL函數(shù)概述 280
13.2.2 DMA傳輸初始化配置 280
13.2.3 啟動DMA數(shù)據(jù)傳輸 282
13.2.4 DMA的中斷 282
13.3 串口的DMA傳輸示例 284
13.3.1 示例功能與CubeMX項目設置 284
13.3.2 程序功能實現(xiàn) 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驅(qū)動程序 299
14.2.1 常規(guī)通道 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 程序功能實現(xiàn) 306
14.4 示例2:定時器觸發(fā)ADC轉換 308
14.4.1 示例功能和CubeMX項目設置 308
14.4.2 程序功能實現(xiàn) 310
14.5 示例3:多通道和DMA傳輸 313
14.5.1 示例功能和CubeMX項目設置 313
14.5.2 程序功能實現(xiàn) 315
14.6 示例4:雙ADC同步轉換 319
14.6.1 示例功能與CubeMX項目設置 319
14.6.2 程序功能實現(xiàn) 320
第15章 DAC 325
15.1 DAC功能概述 325
15.1.1 DAC的結構和特性 325
15.1.2 功能說明 326
15.2 DAC的HAL驅(qū)動程序 328
15.2.1 DAC驅(qū)動宏函數(shù) 328
15.2.2 DAC驅(qū)動功能函數(shù) 328
15.3 示例1:軟件觸發(fā)DAC轉換 332
15.3.1 開發(fā)板上的DAC電路 332
15.3.2 示例功能和CubeMX項目設置 332
15.3.3 程序功能實現(xiàn) 333
15.4 示例2:輸出三角波 335
15.4.1 示例功能和CubeMX項目設置 335
15.4.2 程序功能實現(xiàn) 336
15.5 示例3:使用DMA輸出自定義波形 339
15.5.1 示例功能和CubeMX項目設置 339
15.5.2 程序功能實現(xiàn) 340
第16章 SPI通信 343
16.1 SPI接口和通信協(xié)議 343
16.1.1 SPI硬件接口 343
16.1.2 SPI傳輸協(xié)議 343
16.1.3 STM32F407的SPI接口 345
16.2 SPI的HAL驅(qū)動程序 346
16.2.1 SPI寄存器操作的宏函數(shù) 346
16.2.2 SPI初始化和阻塞式數(shù)據(jù)傳輸 347
16.2.3 中斷方式數(shù)據(jù)傳輸 348
16.2.4 DMA方式數(shù)據(jù)傳輸 349
16.3 Flash存儲芯片W25Q128 350
16.3.1 硬件接口和連接 350
16.3.2 存儲空間劃分 351
16.3.3 數(shù)據(jù)讀寫的原則 351
16.3.4 操作指令 351
16.3.5 狀態(tài)寄存器 353
16.4 示例1:輪詢方式讀寫W25Q128 354
16.4.1 示例功能與CubeMX項目設置 354
16.4.2 初始程序 356
16.4.3 編寫W25Q128的驅(qū)動程序 357
16.4.4 W25Q128功能測試 366
16.5 示例2:DMA方式讀寫W25Q128 370
16.5.1 示例功能和CubeMX項目設置 370
16.5.2 程序功能實現(xiàn) 371
第17章 I2C通信 377
17.1 I2C總線和通信協(xié)議 377
17.1.1 I2C總線結構 377
17.1.2 I2C總線通信協(xié)議 378
17.1.3 STM32F407的I2C接口 378
17.2 I2C的HAL驅(qū)動程序 379
17.2.1 I2C接口的初始化 379
17.2.2 阻塞式數(shù)據(jù)傳輸 379
17.2.3 中斷方式數(shù)據(jù)傳輸 381
17.2.4 DMA方式數(shù)據(jù)傳輸 381
17.3 EEPROM芯片24C02 382
17.3.1 接口和通信協(xié)議 382
17.3.2 驅(qū)動程序設計 384
17.4 讀寫24C02示例 387
17.4.1 示例功能和CubeMX項目設置 387
17.4.2 程序功能實現(xiàn) 388
第18章 CAN總線通信 392
18.1 CAN總線結構和傳輸協(xié)議 392
18.1.1 CAN總線結構 392
18.1.2 CAN總線傳輸協(xié)議 394
18.2 CAN外設工作原理和HAL驅(qū)動程序 397
18.2.1 片上CAN外設的功能概述 397
18.2.2 CAN模塊的基本控制 398
18.2.3 CAN模塊的測試模式 399
18.2.4 消息發(fā)送 400
18.2.5 消息接收 401
18.2.6 標識符篩選 402
18.2.7 中斷及其處理 405
18.3 開發(fā)板上的CAN接口電路 406
18.4 示例1:輪詢方式CAN通信 407
18.4.1 示例功能和CubeMX項目設置 407
18.4.2 程序功能實現(xiàn) 409
18.5 示例2:中斷方式CAN通信 415
18.5.1 示例功能和CubeMX項目設置 415
18.5.2 程序功能實現(xiàn) 415
第19章 FSMC連接外部SRAM 422
19.1 FSMC連接外部SRAM的原理 422
19.1.1 FSMC控制區(qū)域的劃分 422
19.1.2 SRAM芯片與MCU的連接 422
19.2 訪問外部SRAM的HAL驅(qū)動程序 423
19.2.1 外部SRAM初始化與控制 423
19.2.2 外部SRAM讀寫函數(shù) 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 程序功能實現(xiàn) 429
19.4 示例2:DMA方式讀寫外部SRAM 435
19.4.1 示例功能和CubeMX項目設置 435
19.4.2 程序功能實現(xiàn) 437
第20章 獨立看門狗 442
20.1 獨立看門狗的工作原理 442
20.2 獨立看門狗的HAL驅(qū)動程序 443
20.3 獨立看門狗使用示例 444
20.3.1 示例功能和CubeMX項目設置 444
20.3.2 程序功能實現(xiàn) 445
第21章 窗口看門狗 448
21.1 窗口看門狗的工作原理 448
21.2 窗口看門狗的HAL驅(qū)動程序 450
21.3 窗口看門狗使用示例 451
21.3.1 示例功能和CubeMX項目設置 451
21.3.2 不使用EWI中斷 452
21.3.3 使用EWI中斷 454
第22章 電源管理和低功耗模式 456
22.1 電源系統(tǒng)和低功耗模式 456
22.1.1 STM32F4的電源系統(tǒng) 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模板項目和公共驅(qū)動程序的使用 477
A.1 公共驅(qū)動程序的目錄組成 477
A.2 CubeMX模板項目 478
A.3 新建CubeMX項目后導入模板項目的配置 478
A.4 復制模板項目以新建CubeMX項目 479
A.5 在CubeIDE中設置驅(qū)動程序搜索路徑 480
附錄B 復制一個項目 482
附錄C 本書示例項目列表 483
附錄D 縮略詞 485
附參考文獻 488

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) www.autoforsalebyowners.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號