內容大鋼
本書以「新工科」教育理念為指導,以產教融合為突破口,面向產業需求,全面重構課程內容,將產業界的最新技術引入教學。從科研、教學和工程實際應用出發,理論聯繫實際,全面系統地講述了基於STM32CubeMX+Keil MDK和STM32Cube(STM32CubeMX和sTM32CubeIDE)開發方式的嵌入式系統設計與應用實例。
全書共12章,選擇STM32F407ZGT6為模型機,主要內容包括緒論、ArIn處理器體系架構、STM32嵌入式微控制器、STM32CubeMX和HAL庫、STM32CubeIDE開發平台、STM32通用輸入輸出介面、STM32中斷系統、STM32定時器系統、STM32通用同步/非同步收發器、STM32模數轉換器、STM32 DMA控制器和嵌入式實時操作系統FreeRTOS。全書內容豐富,體系先進,結構合理,理論與實踐相結合,尤其注重工程應用技術。
本書是作者在教學與科研實踐經驗的基礎上,結合多年的STM32嵌入式系統的發展編寫而成的。通過閱讀本書,讀者可以掌握STM32Cube開發方式和工具軟體的使用,掌握基於HAL庫的STM32F407系統功能、常用外設的編程開發方法和嵌入式實時操作系統FreeRTOS。本書具有全面性、實踐導向性、系統性,將最新技術的應用、理論與實踐結合,適用範圍廣。
本書可作為高等院校自動化、機器人、自動檢測、機電一體化、人工智慧、電子與電氣工程、電腦應用、信息工程、物聯網等相關專業的學生及研究生的教材,也適合從事STM32嵌入式系統開發的工程技術人員參考。
目錄
第1章 緒論
1.1 嵌入式系統
1.1.1 嵌入式系統概述
1.1.2 嵌入式系統和通用電腦系統比較
1.1.3 嵌入式系統的特點
1.2 嵌入式系統的組成
1.2.1 嵌入式系統的架構
1.2.2 嵌入式系統硬體組成
1.2.3 嵌入式系統軟體組成
1.3 典型嵌入式操作系統
1.3.1 FreeRTOS
1.3.2 RT-Thread
1.3.3 μC/OS-Ⅱ
1.3.4 嵌入式Linux
1.4 嵌入式系統的分類
1.4.1 按應用對象分類
1.4.2 按功能和性能分類
1.4.3 按結構複雜度分類
1.5 嵌入式系統的應用領域
1.6 嵌入式系統應用實例
1.6.1 智能機器人
1.6.2 智能終端
1.6.3 VR/AR產品
1.6.4 蘋果Vision Pro的功能
1.6.5 老年人健康監護系統
1.6.6 自動駕駛
1.6.7 APAX-5580/AMAX-5580邊緣智能控制器
1.6.8 縫紉機器人
1.6.9 智能家用呼吸機
1.6.10 智能家居控制系統
1.6.11 國防工業嵌入式應用實例
1.7 嵌入式微處理器
1.7.1 嵌入式處理器分類
1.7.2 嵌入式處理器內核架構
第2章 Arm處理器體系架構
2.1 嵌入式處理器概述
2.1.1 微處理器的結構
2.1.2 微處理器指令執行過程
2.1.3 微處理器的體系結構
2.2 Arm體系架構與編程模型
2.2.1 Arm處理器體系架構概述
2.2.2 Arm編程模型
2.3 Arm處理器內存管理
2.3.1 內存映射
2.3.2 集成外設寄存器訪問方法
2.4 Arm架構異常處理
2.4.1 Arm處理器異常類型
2.4.2 Arm處理器對異常的響應
2.5 Cortex-M4處理器的內部結構
第3章 STM32嵌入式微控制器
3.1 STM32微控制器概述
3.1.1 STM32微控制器產品線
3.1.2 STM32微控制器的命名規則
3.2 STM32F407ZGT6概述
3.2.1 STM32F407的主要特性
3.2.2 STM32F407的主要功能
3.3 STM32F407ZGT6晶元內部結構
3.4 STM32F407VGT6晶元引腳和功能
3.5 STM32F407VGT6最小系統設計
第4章 STM32CubeMX和HAL庫
4.1 安裝STM32CubeMX
4.2 安裝MCU固件包
4.2.1 軟體庫文件夾設置
4.2.2 管理嵌入式軟體包
4.3 軟體功能與基本使用
4.3.1 軟體界面
4.3.2 新建項目
4.3.3 MCU圖形化配置界面總覽
4.3.4 MCU配置
4.3.5 時鐘配置
4.3.6 項目管理
4.3.7 生成報告和代碼
第5章 STM32CubeIDE開發平台
5.1 安裝STM32CubeIDE
5.2 STM32CubeIDE的操作
5.2.1 新建和導入工程
5.2.2 項目管理
5.2.3 打開/關閉/刪除/切換/導出工程
5.2.4 固件庫管理
5.2.5 代碼編譯
5.2.6 調試及運行配置
5.2.7 啟動調試
5.3 STM32CubeProgrammer軟體
5.4 STM32CubeMonitor軟體
5.5 STM32F407開發板的選擇
5.6 STM32模擬器的選擇
第6章 STM32通用輸入輸出介面
6.1 STM32通用輸入輸出介面概述
6.1.1 輸入通道
6.1.2 輸出通道
6.2 STM32的GPIO功能
6.2.1 普通I/O功能
6.2.2 單獨的位設置或位清除
6.2.3 外部中斷/喚醒線
6.2.4 復用功能
6.2.5 軟體重新映射I/O復用功能
6.2.6 GPIO鎖定機制
6.2.7 輸入配置
6.2.8 輸出配置
6.2.9 復用功能配置
6.2.10 模擬輸入配置
6.2.11 STM32的GPIO操作
6.2.12 外部中斷映射和事件輸出
6.2.13 GPIO的主要特性
6.3 GPIO的HAL驅動程序
6.4 STM32的GPIO使用流程
6.4.1 普通GPIO配置
6.4.2 I/O復用功能AFIO配置
6.5 採用STM32Cube和HAL庫的GPIO輸出應用實例
6.5.1 STM32的GPIO輸出應用硬體設計
6.5.2 STM32的GPIO輸出應用軟體設計
6.6 採用STM32Cube和HAL庫的GPIO輸入應用實例
6.6.1 STM32的GPIO輸入應用硬體設計
6.6.2 STM32的GPIO輸入應用軟體設計
第7章 STM32中斷系統
7.1 中斷概述
7.1.1 中斷
7.1.2 中斷的功能
7.1.3 中斷源與中斷屏蔽
7.1.4 中斷處理過程
7.1.5 中斷優先順序與中斷嵌套
7.2 STM32F4中斷系統
7.2.1 STM32F4的嵌套向量中斷控制器NVIC
7.2.2 STM32F4中斷優先順序
7.2.3 STM32F4中斷向量表
7.2.4 STM32F4中斷服務程序
7.3 STM32F4外部中斷/事件控制器EXTI
7.3.1 STM32F4的EXTI內部結構
7.3.2 STM32F4的EXTI主要特性
7.4 STM32F4中斷HAL驅動程序
7.4.1 中斷設置相關HAL驅動程序
7.4.2 外部中斷相關HAL函數
7.5 STM32F4外部中斷設計流程
7.6 採用STM32Cube和HAL庫的外部中斷設計實例
7.6.1 STM32F4外部中斷的硬體設計
7.6.2 STM32F4外部中斷的軟體設計
第8章 STM32定時器系統
8.1 STM32定時器概述
8.2 STM32基本定時器
8.2.1 基本定時器介紹
8.2.2 基本定時器的功能
8.2.3 STM32基本定時器的寄存器
8.3 STM32通用定時器
8.3.1 通用定時器介紹
8.3.2 通用定時器的功能
8.3.3 通用定時器的工作模式
8.3.4 通用定時器的寄存器
8.4 STM32定時器HAL庫函數
8.4.1 基本定時器HAL驅動程序
8.4.2 外設的中斷處理概念小結
8.5 採用STM32Cube和HAL庫的定時器應用實例
8.5.1 STM32的通用定時器配置流程
8.5.2 STM32的定時器應用硬體設計
8.5.3 STM32的定時器應用軟體設計
第9章 STM32通用同步/非同步收發器
9.1 串列通信基礎
9.1.1 串列非同步通信數據格式
9.1.2 串列同步通信數據格式
9.2 STM32的USART工作原理
9.2.1 USART介紹
9.2.2 USART的主要特性
9.2.3 USART的功能
9.2.4 USART的通信時序
9.2.5 USART的中斷
9.2.6 USART相關寄存器
9.3 USART的HAL驅動程序
9.3.1 常用功能函數
9.3.2 常用的宏函數
9.3.3 中斷事件與回調函數
9.4 採用STM32Cube和HAL庫的USART串列通信應用實例
9.4.1 STM32的USART的基本配置流程
9.4.2 USART串列通信應用硬體設計
9.4.3 USART串列通信應用軟體設計
第10章 STM32模數轉換器
10.1 模擬量輸入通道
10.1.1 模擬量輸入通道的組成
10.1.2 ADC的工作原理
10.2 模擬量輸入信號類型與量程自動轉換
10.2.1 模擬量輸入信號類型
10.2.2 量程自動轉換
10.3 STM32F407微控制器的ADC結構
10.4 STM32F407微控制器的ADC功能
10.4.1 ADC使能和啟動
10.4.2 時鐘配置
10.4.3 轉換模式
10.4.4 DMA控制
10.4.5 STM32的ADC應用特徵
10.5 ADC的HAL驅動程序
10.5.1 常規通道
10.5.2 注入通道
10.6 採用STM32Cube和HAL庫的ADC應用實例
10.6.1 STM32的ADC配置流程
10.6.2 ADC應用的硬體設計
10.6.3 ADC應用的軟體設計
第11章 STM32 DMA控制器
11.1 STM32 DMA的基本概念
11.1.1 DMA的定義
11.1.2 DMA傳輸的基本要素
11.1.3 DMA傳輸過程
11.2 STM32 DMA的結構和主要特徵
11.3 STM32 DMA的功能描述
11.3.1 DMA處理
11.3.2 仲裁器
11.3.3 DMA通道
11.3.4 DMA中斷
11.4 DMA的HAL驅動程序
11.4.1 DMA的HAL函數概述
11.4.2 DMA傳輸初始化配置
11.4.3 啟動DMA數據傳輸
11.4.4 DMA的中斷
11.5 採用STM32Cube和HAL庫的DMA應用實例
11.5.1 STM32的DMA配置流程
11.5.2 DMA應用的硬體設計
11.5.3 DMA應用的軟體設計
第12章 嵌入式實時操作系統FreeRTOS
12.1 FreeRTOS系統概述
12.1.1 FreeRTOS的特點
12.1.2 FreeRTOS的商業許可
12.1.3 FreeRTOS的發展歷史
12.1.4 FreeRTOS的功能
12.2 FreeRTOS的源碼和相應官方手冊獲取
12.3 FreeRTOS系統移植
12.4 FreeRTOS的文件組成
12.5 FreeRTOS的編碼規則及配置和功能裁剪
12.6 FreeRTOS的任務管理
12.6.1 任務相關的一些概念
12.6.2 FreeRTOS的任務調度
12.6.3 任務管理相關函數
12.7 進程間通信與消息隊列