極簡STM32:基於HAL庫與FreeRTOS的Arm Cortex-M4編程與開發
向軍、孫永奎
商品描述
"本書介紹了STM32系列MCU的體系結構以及基於HAL庫和FreeRTOS的程序設計。主要內容包括:STM32體系結構、STM32的固件包和HAL庫、STM32的中斷與系統定時器、通信接口、定時器和模擬外設、FreeRTOS基礎、FreeRTOS的任務和中斷管理、FreeRTOS進程間通信技術等,最後介紹了一個綜合應用實踐案例——自動尋跡智能小車。 本書各章節內容都給出了相應的案例和實踐練習題,所有代碼都在STM32CubeIDE 1.17版本(固件包版本為1.28.1)上調試通過。此外,本書還提供了豐富的基礎知識練習題,以及課程大綱、實驗講義和微課視頻等電子資源。"
作者簡介
"向軍:西南交通大學電氣工程學院副教授。長期從事單片機和嵌入式系統開發、通信與信號理論、系統建模與仿真等領域的教學和研究工作。先後為本科生和研究生開設“嵌入式系統及應用”“單片機原理”“數字信號處理”“通信原理”“MATLAB編程及工程應用”“系統建模與仿真“等多門課程,發表學術論文30余篇,出版暢銷教材8部。孫永奎 西南交通大學電氣工程學院電子信息工程系副系主任, 主管全系本科和研究生實驗教學,近五年參加和主持國家自然科學基金等項目4項,出版教材3部,發表學術論文20余篇。"
目錄大綱
目錄
第 一 部 分
第1章STM32體系結構
微課視頻59分鐘
1.1嵌入式系統與STM32
1.1.1嵌入式系統簡介
1.1.2STM32簡介
1.2STM32體系結構
1.2.1Arm內核體系架構
1.2.2STM32系列微控制器
1.2.3STM32F407微控制器
1.3GPIO外設
1.3.1GPIO的寄存器及其映射
1.3.2GPIO的內部組成
1.3.3GPIO的工作模式
1.4STM32最小系統
1.4.1電源和復位啟動電路
1.4.2時鐘系統與時鐘電路
1.4.3調試和下載電路
本章小結
本章習題
第2章STM32編程基礎
微課視頻101分鐘
2.1STM32程序開發方式與開發環境
2.1.1程序開發方式
2.1.2開發環境
2.1.3程序下載及調試運行工具
2.2嵌入式C語言基礎
2.2.1結構體和枚舉
2.2.2數據類型別名
2.2.3指針
2.2.4C語言中的位操作
2.2.5預處理與條件編譯
2.3基於寄存器的STM32程序設計
2.3.1程序設計步驟
2.3.2本書案例代碼使用說明
2.4庫的創建
2.4.1GPIO外設的封裝與結構體定義
2.4.2GPIO操作函數的創建
本章小結
本章習題
第3章STM32固件包與HAL庫
微課視頻92分鐘
3.1STM32固件包
3.1.1固件包的下載和安裝
3.1.2固件包的組成和目錄結構
3.2HAL庫
3.2.1HAL庫的特點與核心組件
3.2.2系統配置文件
3.2.3HAL庫配置文件
3.2.4HAL庫外設驅動函數文件
3.2.5各文件的包含關系
3.2.6啟動文件
3.3基於CubeMX和HAL庫的程序設計
3.3.1CubeMX的主界面
3.3.2基於CubeMX的程序設計流程
本章小結
本章習題
第 二 部 分
第4章中斷和系統定時器
微課視頻32分鐘
4.1異常和中斷管理系統
4.1.1基本概念
4.1.2NVIC和EXTI控制器
4.1.3中斷優先級管理
4.2外部中斷應用編程
4.2.1外部中斷的CubeMX配置
4.2.2外部中斷的初始化
4.2.3外部中斷的處理
4.3系統滴答定時器
4.3.1SysTick的封裝
4.3.2SysTick的初始化
4.3.3系統節拍與HAL時基
4.3.4HAL_Delay()函數
4.4看門狗與實時時鐘
4.4.1看門狗
4.4.2實時時鐘
本章小結
本章習題
第5章通信接口及其應用
微課視頻112分鐘
5.1通用串口及其應用
5.1.1通用串口的內部結構
5.1.2時鐘和波特率
5.1.3通用串口在HAL庫中的封裝和定義
5.1.4串口重定向
5.2I2C接口及其應用
5.2.1I2C的基本概念
5.2.2STM32中的I2C接口
5.2.3I2C在HAL庫中的封裝和定義
5.3SPI及其應用
5.3.1SPI的基本概念
5.3.2STM32中的SPI
5.3.3SPI在HAL庫中的封裝和定義
5.3.4SPI外設的典型應用
本章小結
本章習題
第6章定時器及其應用
微課視頻77分鐘
6.1定時器的基本特性
6.2基本定時器
6.2.1功能框圖及工作原理
6.2.2基本定時器的初始化
6.2.3相關HAL庫函數
6.3通用定時器
6.3.1功能框圖
6.3.2時鐘源和計數模式
6.3.3輸入捕獲和比較輸出
6.3.4PWM信號的產生和測量
本章小結
本章習題
第7章模擬外設
微課視頻116分鐘
7.1DAC及其應用
7.1.1DAC功能框圖
7.1.2DAC相關HAL庫驅動
7.2ADC及其應用
7.2.1ADC的功能框圖
7.2.2ADC的初始化及相關HAL庫驅動
7.3ADC的DMA傳輸
7.3.1DMA控制器
7.3.2DMA初始化配置
7.3.3DMA的啟動和數據傳輸
本章小結
本章習題
第 三 部 分
第8章FreeRTOS基礎
微課視頻19分鐘
8.1FreeRTOS簡介
8.1.1嵌入式操作系統
8.1.2FreeRTOS的功能和特性
8.1.3固件包中的FreeRTOS
8.2FreeRTOS的初始化配置
8.2.1CubeMX工程配置
8.2.2工程文件的基本結構
8.2.3主程序文件
8.3FreeRTOS編程基礎
8.3.1數據類型和代碼格式
8.3.2FreeRTOS的移植和裁剪
8.4軟件定時器
8.4.1軟件定時器特性
8.4.2軟件定時器相關函數
本章小結
本章習題
第9章FreeRTOS的任務和中斷管理
微課視頻33分鐘
9.1多任務系統
9.1.1輪詢系統
9.1.2前後臺系統
9.1.3多任務系統
9.2任務的創建
9.2.1任務與任務函數
9.2.2FreeRTOS中的存儲器管理
9.2.3創建任務
9.3任務的調度
9.3.1任務的優先級與狀態
9.3.2基礎時鐘與時間片
9.3.3調度任務
9.4任務和調度器管理函數
9.4.1任務管理函數
9.4.2調度器管理函數
9.4.3CMSIS接口函數
9.5中斷管理
9.5.1中斷管理的運作機制
9.5.2中斷的優先級
9.5.3FreeRTOS中的兩套API函數
本章小結
本章習題
第10章FreeRTOS進程間通信技術
微課視頻59分鐘
10.1隊列
10.1.1隊列的創建和存儲
10.1.2隊列管理函數
10.1.3隊列CMSIS接口函數
10.2信號量和互斥量
10.2.1信號量和互斥量的分類
10.2.2互斥量的優先級繼承
10.2.3信號量和互斥量管理函數
10.2.4信號量和互斥量CMSIS接口函數
10.3事件組
10.3.1事件組的基本工作原理
10.3.2事件組管理函數
10.3.3事件組CMSIS接口函數
10.4任務通知
10.4.1任務通知的工作原理
10.4.2任務通知管理函數
10.4.3任務通知CMSIS接口函數
本章小結
本章習題
第 四 部 分
第11章綜合應用實踐案例
11.1兩輪差速移動機器人簡介
11.1.1機器人的運動原理
11.1.2機器人電機驅動及運動控制
11.2機器人運動控制程序設計
11.2.1基於HAL庫的運動控制程序設計
11.2.2基於FreeRTOS的運動控制程序設計
11.3機器人巡線控制程序設計
11.3.1TSL1401CL簡介
11.3.2基於HAL庫的巡線控制程序設計
11.3.3基於FreeRTOS的巡線控制程序設計
本章小結
本章習題
參考文獻







