ARM Cortex-M4嵌入式系統原理及應用——基於STM32F407微控制器的HAL庫開發
黃克亞
買這商品的人也買了...
-
$250Learning hard C# 學習筆記
-
$474$450 -
$356C# 程序設計,2/e (慕課版)
-
$348$331 -
$354$336 -
$534$507 -
$534$507 -
$294$279 -
$594$564 -
$408$388
相關主題
商品描述
本書旨在傳承51經典,發揚 ARM 長處,助推微控制器升級,以學生認知過程為導向組織內容,採取項目引領,全案例 教學的方式,著重培養學生實踐應用能力。本書詳細闡述了基於 ARM Cortex-M4內核的STM32F407微控制器嵌入式系 統硬件設計方法和軟件開發技術。全書共有18章,劃分為三部分:第一部分(第1~3章)為系統平臺模塊,分別講述嵌入 式系統定義、嵌入式硬件平臺和軟件環境配置與使用入門;第二部分(第4~10章)為基本外設模塊,分別對 STM32嵌入 式系統最常用的外設模塊進行介紹,包括 GPIO、中斷、定時器、PWM 和嵌入式系統接口技術;第三部分(第11~18章)為 擴展外設模塊,分別對 STM32 嵌入式系統高級外設模塊和典型傳感器進行 講 解,包 括 USART、SPI、W25Q128、I2C、 EEPROM、ADC、DMA、DAC、RTC和 DHT11等。 本書適合作為高等院校電腦、自動化、電子信息、機電一體化、物聯網等專業高年級本科生或研究生嵌入式相關課 程的教材,同時可供從事嵌入式開發的技術和研究人員參考。
目錄大綱
目錄
第一篇系 統 平 台
第1章ARM CortexM4嵌入式系統
1.1嵌入式系統概述
1.1.1什麽是嵌入式系統
1.1.2嵌入式系統和通用電腦比較
1.1.3嵌入式系統的特點
1.1.4嵌入式系統的應用領域
1.1.5嵌入式系統範例
1.2嵌入式系統的硬件
1.2.1嵌入式處理器的分類
1.2.2嵌入式處理器的技術指標
1.2.3嵌入式存儲器
1.2.4嵌入式I/O設備
1.2.5嵌入式I/O接口
1.3ARM CortexM4 處理器
1.3.1ARM公司
1.3.2ARM處理器
1.4STM32微控制器
1.4.1從ARM CortexM內核到基於ARM CortexM的MCU
1.4.2STM32微控制器產品線
1.4.3STM32微控制器命名規則
1.5嵌入式系統的軟件
1.5.1無操作系統的嵌入式軟件
1.5.2帶操作系統的嵌入式軟件
1.5.3典型嵌入式操作系統
1.5.4軟件結構選擇建議
本章小結
思考拓展
第2章STM32F407與實驗平臺
2.1STM32F407微控制器
2.1.1STM32F407/STM32F417系列
2.1.2STM32F407功能特性
2.1.3STM32F407內部結構
2.1.4STM32F407存儲器映射
2.1.5STM32F407時鐘系統
2.1.6STM32F407引腳
2.2開發板總體概況
2.2.1開發板設計背景
2.2.2開發板總體介紹
2.3電源電路
2.3.1電源電路原理圖
2.3.2電源電路工作原理
2.4核心板電路
2.4.1芯片電源電路
2.4.2CPU濾波電路
2.4.3外接晶振電路
2.4.4備用電源電路
2.4.5復位電路
2.4.6啟動設置電路
2.5I/O模塊電路
2.5.1LED模塊
2.5.2按鍵模塊
2.5.3顯示模塊
2.5.4蜂鳴器模塊
2.6擴展模塊電路
2.6.1溫濕度傳感器
2.6.2光照傳感器
2.6.3A/D採樣模塊
2.6.4EEPROM
2.6.5Flash存儲器
2.6.6波形發生器
2.6.7藍牙模塊
2.6.8I/O引腳外接模塊
2.7CMSISDAP調試器
本章小結
思考拓展
第3章軟件環境配置與使用入門
3.1STM32開發方式
3.1.1STM32Snippets庫
3.1.2標準外設庫
3.1.3STM32CubeMX HAL庫
3.1.4STM32CubeMX LL庫
3.1.5開發方式比較與選擇
3.2軟件資源安裝與配置
3.2.1JRE安裝
3.2.2STM32CubeMX安裝
3.2.3HAL固件包安裝
3.2.4MDKARM安裝
3.2.5器件包安裝
3.2.6MDKARM註冊
3.2.7軟件安裝總結
3.3基於STM32CubeMX的HAL開發方式
3.3.1STM32CubeMX生成初始化代碼
3.3.2MDKARM集成開發
3.4CMSISDAP調試器使用
3.4.1調試器連接與驅動安裝
3.4.2調試選項設置與程序下載
3.5開發經驗小結——編譯器優化與volatile關鍵字
3.5.1編譯器優化
3.5.2volatile關鍵字
本章小結
思考拓展
第二篇基 本 外 設
第4章通用輸入輸出埠
4.1GPIO概述及引腳命名
4.2GPIO內部結構
4.2.1輸入驅動器
4.2.2輸出驅動器
4.3GPIO工作模式
4.3.1輸入浮空
4.3.2輸入上拉
4.3.3輸入下拉
4.3.4模擬輸入
4.3.5開漏輸出
4.3.6開漏復用輸出
4.3.7推輓式輸出
4.3.8推輓式復用輸出
4.3.9工作模式選擇
4.4GPIO輸出速度
4.5I/O引腳復用及映射
4.6GPIO控制寄存器
4.7GPIO控制寄存器配置實例
4.8寄存器版LED燈閃爍工程
4.8.1創建寄存器版工程模板
4.8.2LED燈閃爍程序設計
4.9開發經驗小結——MDK中的C語言數據類型
本章小結
思考拓展
第5章LED流水燈與SysTick定時器
5.1GPIO輸出庫函數
5.1.1GPIO外設時鐘使能
5.1.2函數HAL_GPIO_Init()
5.1.3函數HAL_GPIO_DeInit()
5.1.4函數HAL_GPIO_WritePin()
5.1.5函數HAL_GPIO_TogglePin()
5.1.6輸出寄存器訪問
5.2LED流水燈控制
5.3SysTick定時器
5.3.1SysTick定時器概述
5.3.2SysTick定時器寄存器
5.3.3延時函數HAL_Delay()
5.3.4HAL_Delay()延時實例
5.3.5微秒級延時的實現
5.3.6綜合延時程序實例
5.4開發經驗小結——C語言中的位運算
5.4.1位運算符和位運算
5.4.2嵌入式系統位運算實例
本章小結
思考拓展
第6章按鍵輸入與蜂鳴器
6.1GPIO輸入庫函數
6.1.1函數HAL_GPIO_ReadPin()
6.1.2輸入數據寄存器訪問
6.1.3函數HAL_GPIO_LockPin()
6.2獨立按鍵控制蜂鳴器
6.2.1電路原理
6.2.2按鍵消抖
6.2.3項目實施
6.3矩陣鍵盤掃描
6.3.1矩陣鍵盤電路
6.3.2矩陣鍵盤掃描原理
6.3.3矩陣鍵盤實例
6.4開發經驗小結——復合數據類型
6.4.1結構體數據類型
6.4.2枚舉數據類型
本章小結
思考拓展
第7章FSMC總線與雙顯示終端
7.1FSMC總線
7.2硬件系統設計
7.2.1硬件結構框圖
7.2.2FSMC與TFT LCD連接
7.2.3FSMC與數碼管連接
7.3數碼管接口技術
7.3.1數碼管工作原理
7.3.2數碼管編碼方式
7.3.3數碼管顯示方式
7.4TFT LCD驅動
7.4.1ILI9341顏色體系
7.4.2ILI9341常用命令
7.5項目實例
7.5.1FSMC讀寫時序
7.5.2FSMC初始化
7.5.3數碼管動態顯示學號
7.5.4數碼管動態顯示時間
7.5.5LCD驅動程序
7.5.6LCD英文顯示
7.5.7LCD中文信息顯示
7.6開發經驗小結——C語言指針及其類型轉換
7.6.1指針基本概念
7.6.2指針類型轉換
本章小結
思考拓展
第8章中斷系統與基本應用
8.1中斷的基本概念
8.1.1中斷的定義
8.1.2中斷的優點與應用
8.1.3中斷源與中斷屏蔽
8.1.4中斷處理過程
8.1.5中斷優先級與中斷嵌套
8.2STM32F407中斷系統
8.2.1嵌套向量中斷控制器
8.2.2STM32F407中斷優先級
8.2.3STM32F407中斷向量表
8.2.4STM32F407中斷服務函數
8.3STM32F407外部中斷/事件控制器EXTI
8.3.1EXTI內部結構
8.3.2EXTI工作原理
8.3.3EXTI主要特性
8.4STM32F407外部中斷HAL庫函數
8.4.1STM32F407的NVIC相關庫函數
8.4.2STM32F407的EXTI相關庫函數
8.5EXTI項目實例
8.5.1項目分析
8.5.2項目實施
8.5.3ISR框架總結
8.6開發經驗小結——前/後台嵌入式軟件架構
本章小結
思考拓展
第9章基本定時器
9.1STM32F407定時器概述
9.2基本定時器
9.2.1基本定時器簡介
9.2.2基本定時器的主要特性
9.2.3基本定時器的功能
9.2.4基本定時器寄存器
9.3基本定時器的HAL驅動
9.3.1基本定時器主要HAL驅動函數
9.3.2定時器通用操作宏函數
9.3.3定時器中斷處理函數
9.4項目實例
9.4.1數字電子鐘
9.4.2定時器刷新數碼管
9.4.3定時器矩陣鍵盤掃描
本章小結
思考拓展
第10章通用定時器
10.1通用定時器功能概述
10.1.1通用定時器主要特性
10.1.2通用定時器功能描述
10.2通用定時器工作模式與HAL驅動
10.2.1PWM輸出模式
10.2.2輸出比較模式
10.2.3輸入捕獲模式
10.2.4PWM輸入模式
10.3通用定時器寄存器
10.4通用定時器中斷事件和回調函數
10.5項目實例
10.5.1PWM呼吸燈
10.5.2輸出比較模式輸出方波信號
10.5.3輸入捕獲模式測量脈沖頻率
10.5.4PWM波頻率和占空比測量
本章小結
思考拓展
第三篇擴 展 外 設
第11章串行通信接口USART
11.1數據通信基本概念
11.1.1並行通信與串行通信
11.1.2異步通信與同步通信
11.1.3串行通信的制式
11.1.4串行通信的校驗
11.1.5串行通信的波特率
11.2USART工作原理
11.2.1USART介紹
11.2.2USART功能特性
11.2.3UART通信協議
11.2.4USART中斷
11.2.5USART相關寄存器
11.3UART的HAL驅動
11.3.1UART常用功能函數
11.3.2UART常用的宏函數
11.3.3UART中斷事件與回調函數
11.4串口通信項目實例
11.4.1項目分析
11.4.2微控制器端程序設計
11.4.3上位機程序設計
11.4.4串口通信調試
11.5開發經驗小結——printf()重定向函數
11.5.1重寫fputc()函數
11.5.2選擇使用Micro LIB
11.5.3printf()串口打印信息
本章小結
思考拓展
第12章SPI與字庫存儲
12.1SPI通信原理
12.1.1SPI
12.1.2SPI互連
12.2STM32F407的SPI工作原理
12.2.1SPI主要特徵
12.2.2SPI內部結構
12.2.3時鐘信號的相位和極性
12.2.4數據幀格式
12.3Flash存儲芯片W25Q128
12.3.1硬件接口和連接
12.3.2存儲空間劃分
12.3.3數據讀寫原則
12.3.4存儲器操作指令
12.4SPI的HAL庫驅動
12.4.1SPI寄存器操作的宏函數
12.4.2SPI初始化和阻塞式數據傳輸
12.4.3中斷和DMA方式數據傳輸
12.5SPI Flash讀寫測試
12.5.1項目分析
12.5.2項目實施
12.6中文字庫存儲
12.6.1需求分析
12.6.2字庫生成與合並
12.6.3字庫存儲
12.6.4LCD中文驅動程序
12.7基於SPI快閃內存的中文顯示
12.8開發經驗小結——條件編譯
12.8.1命令形式
12.8.2應用示例
本章小結
思考拓展
第13章I2C接口與EEPROM
13.1I2C通信原理
13.1.1I2C串行總線概述
13.1.2I2C總線的數據傳送
13.2STM32F407的I2C接口
13.2.1STM32F407的I2C主要特性
13.2.2STM32F407的I2C內部結構
13.2.3STM32F407的I2C工作模式
13.3I2C接口的HAL庫驅動
13.3.1I2C接口的初始化
13.3.2阻塞式數據傳輸
13.3.3中斷方式數據傳輸
13.3.4DMA方式數據傳輸
13.4EEPROM存儲芯片24C02
13.4.1芯片概述與硬件連接
13.4.2接口與通信協議
13.5EEPROM存儲開機密碼項目
13.5.1項目分析
13.5.2項目實施
本章小結
思考拓展
第14章模/數轉換與光照傳感器
14.1ADC概述
14.1.1ADC基本原理
14.1.2ADC性能參數
14.1.3ADC主要類型
14.2STM32F407的ADC工作原理
14.2.1主要特徵
14.2.2內部結構
14.2.3通道及分組
14.2.4時序圖
14.2.5數據對齊
14.2.6校準
14.2.7轉換時間
14.2.8轉換模式
14.2.9外部觸發轉換和觸發極性
14.2.10中斷和DMA請求
14.2.11多重ADC模式
14.3ADC的HAL庫驅動
14.3.1規則通道驅動
14.3.2註入通道驅動
14.3.3多重ADC驅動
14.4項目實例
14.4.1多通道輪詢方式模擬信號採集
14.4.2光照傳感器模擬與數字同步控制
本章小結
思考拓展
第15章直接存儲器訪問
15.1DMA的基本概念
15.1.1DMA的由來
15.1.2DMA的定義
15.1.3DMA的優點
15.2STM32F407的DMA工作原理
15.2.1DMA簡介
15.2.2DMA通道選擇
15.2.3DMA主要特性
15.2.4DMA傳輸屬性
15.3DMA的HAL庫驅動
15.3.1DMA的HAL函數概述
15.3.2DMA傳輸初始化配置
15.3.3啟動DMA數據傳輸
15.3.4DMA中斷
15.4項目實例
15.4.1USART接口DMA傳輸
15.4.2定時器觸發DMA傳輸多通道模擬量採集
15.4.3三重ADC同步轉換DMA傳輸
15.5開發經驗小結——輪詢、中斷、DMA
15.5.1輪詢
15.5.2中斷
15.5.3DMA
本章小結
思考拓展
第16章數/模轉換器
16.1DAC概述
16.1.1DAC基本原理
16.1.2DAC性能參數
16.2STM32F407的DAC工作原理
16.2.1DAC結構與特性
16.2.2DAC功能說明
16.3DAC的HAL庫驅動
16.3.1DAC驅動宏函數
16.3.2DAC驅動功能函數
16.4項目實例
16.4.1軟件觸發D/A轉換
16.4.2三角波輸出
16.4.3使用DMA輸出正弦波信號
本章小結
思考拓展
第17章位帶操作與溫濕度傳感器
17.1STM32位帶操作
17.1.1位帶介紹
17.1.2位帶區與位帶別名區地址轉換
17.1.3位帶操作宏定義
17.2溫濕度傳感器DHT11
17.2.1DHT11功能說明
17.2.2DHT11單總線通信協議
17.3溫濕度實時監測
17.3.1項目分析
17.3.2項目實施
本章小結
思考拓展
第18章RTC與藍牙通信
18.1RTC概述
18.1.1RTC功能
18.1.2RTC工作原理
18.1.3RTC的中斷和復用引腳
18.2RTC的HAL庫驅動
18.2.1RTC的HAL基礎驅動程序
18.2.2周期喚醒相關HAL函數
18.2.3鬧鐘相關HAL函數
18.3備份寄存器
18.4RTC日歷和鬧鐘項目
18.4.1項目分析
18.4.2項目實施
18.5藍牙模塊通信
18.5.1藍牙通信概述
18.5.2藍牙透明傳輸原理
18.6無線時間同步電子萬年歷
18.6.1項目分析
18.6.2項目實施
本章小結
思考拓展
附錄AASCII碼表
附錄B運算符和結合性關系表
附錄CSTM32F407微控制器引腳定義表
參考文獻