ARM Cortex-M4 嵌入式系統原理及應用 — 基於 STM32F407 微控制器的 HAL 庫開發

黃克亞

  • 出版商: 清華大學
  • 出版日期: 2024-04-01
  • 售價: $474
  • 貴賓價: 9.5$450
  • 語言: 簡體中文
  • 頁數: 440
  • ISBN: 730265672X
  • ISBN-13: 9787302656722
  • 相關分類: ARM嵌入式系統單晶片STM32
  • 立即出貨

  • ARM Cortex-M4 嵌入式系統原理及應用 — 基於 STM32F407 微控制器的 HAL 庫開發-preview-1
  • ARM Cortex-M4 嵌入式系統原理及應用 — 基於 STM32F407 微控制器的 HAL 庫開發-preview-2
  • ARM Cortex-M4 嵌入式系統原理及應用 — 基於 STM32F407 微控制器的 HAL 庫開發-preview-3
ARM Cortex-M4 嵌入式系統原理及應用 — 基於 STM32F407 微控制器的 HAL 庫開發-preview-1

買這商品的人也買了...

相關主題

商品描述

本書旨在傳承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 CortexM4嵌入式系統

 

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 CortexM4 處理器

 

1.3.1ARM公司

 

1.3.2ARM處理器

 

1.4STM32微控制器

 

1.4.1從ARM CortexM內核到基於ARM CortexM的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.7CMSISDAP調試器

 

本章小結

 

思考拓展

 

第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.4MDKARM安裝

 

3.2.5器件包安裝

 

3.2.6MDKARM註冊

 

3.2.7軟件安裝總結

 

3.3基於STM32CubeMX的HAL開發方式

 

3.3.1STM32CubeMX生成初始化代碼

 

3.3.2MDKARM集成開發

 

3.4CMSISDAP調試器使用

 

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微控制器引腳定義表

 

參考文獻