圖書內容
本書以STM32F103XX晶片為例,對車載ARM嵌入式系統進行了詳細的介紹。
全書共8章,按內容講解的難度不同劃分為3篇:基礎篇主要介紹有關車載ARM嵌入式系統的基礎知識,包括STM32F103XX晶片的系統資源、工作平台、基本語法指令等內容。
提高篇主要介紹ARM嵌入式系統在實際工程項目中的初步套用,從GPIO接口模組、ADC模數轉換模組、TIMER定時器等方面進行詳細介紹,並著重分析了ARM嵌入式系統硬體資源的使用。綜合篇主要是對前兩篇所有基礎知識的總結和套用,著重介紹ARM嵌入式系統在車輛中的套用,並給出了相應的程式設計代碼。
目 錄
基礎篇
第1章 初識ARM嵌入式系統 (1)
1.1 ARM嵌入式系統簡介 (2)
1.1.1 ARM嵌入式的發展歷程及其套用 (2)
1.1.2 ARM嵌入式的性能特性 (4)
1.1.3 ARM嵌入式系統的開發要點 (5)
1.1.4 常用車載ARM嵌入式晶片STM32F103XX (7)
1.2 ARM嵌入式系統的開發環境 (8)
1.2.1 Keil MDK簡介 (9)
1.2.2 Keil MDK開發步驟 (11)
1.3 ARM嵌入式系統的硬體構成 (16)
1.3.1 ARM嵌入式處理器結構 (17)
1.3.2 ARM嵌入式處理器中的指令 (18)
1.3.3 ARM硬體配置 (18)
1.4 ARM嵌入式系統開發實例——車載嵌入式晶片STM32F103XX (19)
1.4.1 系統資源與性能參數 (20)
1.4.2 系統硬體設計 (22)
1.4.3 系統外圍接口 (23)
第2章 ARM指令系統 (25)
2.1 ARM指令系統簡介 (26)
2.1.1 ARM彙編語言的基本語法 (27)
2.1.2 ARM彙編指令中的後綴 (29)
2.1.3 ARM彙編指令的書寫格式 (30)
2.2 ARM指令集的基本概念 (31)
2.2.1 ARM指令的基本格式 (31)
2.2.2 ARM指令中的條件執行 (33)
2.2.3 ARM指令中的S標誌 (35)
2.3 ARM指令集的類型 (36)
2.3.1 跳轉指令 (36)
2.3.2 算術運算指令 (42)
2.3.3 邏輯運算指令 (54)
2.3.4 存儲器訪問指令 (59)
2.3.5 數據傳送指令 (61)
2.3.6 協處理器指令 (64)
2.3.7 異常中斷產生指令 (68)
2.3.8 ARM指令小結 (69)
2.4 Thumb指令集 (69)
2.4.1 Thumb指令的基本概念 (70)
2.4.2 Thumb指令集的結構 (70)
2.4.3 Thumb狀態下的暫存器 (71)
2.4.4 Thumb指令集的類型 (72)
2.4.5 Thumb指令小結 (72)
第3章 STM32技術基礎 (73)
3.1 STM32F103XX系統簡介 (74)
3.1.1 STM32F103XX系列處理器晶片 (74)
3.1.2 STM32F103XX器件信息 (76)
3.2 STM32F103XX引腳信息 (77)
3.3 STM32F103XX的內部結構 (77)
3.3.1 STM32F103XX晶片總體結構 (83)
3.3.2 STM32F103XX片上Flash程式存儲器 (83)
3.3.3 STM32F103XX片內靜態RAM (84)
3.4 STM32F103XX存儲器映射 (84)
3.4.1 存儲系統中的大/小端配置 (84)
3.4.2 系統存儲器的映射 (85)
3.4.3 系統存儲器的訪問屬性 (86)
3.4.4 系統存儲器的地址重映射 (88)
3.4.5 系統存儲中止的異常 (89)
3.5 STM32F103XX的系統控制模組 (89)
3.5.1 晶體振盪器 (90)
3.5.2 外部中斷輸入 (92)
3.5.3 系統的啟動模式 (93)
3.5.4 系統鎖相環PLL (93)
3.5.5 系統休眠與低功耗 (94)
3.5.6 系統復位 (98)
3.5.7 系統時鐘分頻 (99)
3.5.8 系統掉電檢測與控制 (100)
3.6 STM32F103XX向量中斷控制器 (100)
3.6.1 中斷的概念與類型 (101)
3.6.2 外部中斷/事件控制器的特點與結構 (102)
3.6.3 EXTI的暫存器 (104)
3.6.4 中斷的處理過程 (107)
提高篇
第4章 STM32F103XX程式設計 (108)
4.1 STM32F103XX處理器的彙編程式開發框架 (109)
4.1.1 ARM彙編語言中的代碼程式段 (110)
4.1.2 ARM彙編語言中的數據程式段 (111)
4.1.3 ARM彙編語言中的宏定義 (111)
4.1.4 ARM彙編語言中的符號數據 (112)
4.2 STM32F103XX處理器的數據操作 (114)
4.2.1 C語言中的數據類型 (114)
4.2.2 C語言中數據的輸入/輸出格式 (115)
4.2.3 C語言中變數和常量 (118)
4.2.4 C語言中的整型數據 (120)
4.2.5 C語言中的實型數據 (123)
4.2.6 C語言中的字元型數據 (126)
4.2.7 C語言中的字元串常量 (132)
4.2.8 不同類型數據之間的混合運算 (133)
4.3 STM32F103XX處理器的數據運算 (134)
4.3.1 ARM程式代碼中的算術運算符 (135)
4.3.2 算術運算符的優先權和結合性 (136)
4.3.3 數據類型的強制轉換 (137)
4.3.4 自增與自減操作 (138)
4.3.5 賦值運算符和賦值表達式 (140)
4.3.6 逗號運算符 (142)
4.4 STM32F103XX的流程控制語句 (143)
4.4.1 ARM中的if條件判斷語句 (143)
4.4.2 ARM中的switch分支選擇語句 (146)
4.4.3 ARM中的循環控制語句 (150)
第5章 STM32F103XX功能模組(1) (155)
5.1 ARM處理器的選型與功能模組 (156)
5.1.1 ARM處理器的性能參數 (156)
5.1.2 ARM處理器的外部接口 (157)
5.1.3 ARM處理器的晶片封裝 (158)
5.1.4 STM32F103XX系列ARM處理器 (160)
5.2 GPIO接口模組 (162)
5.2.1 GPIO引腳特性 (162)
5.2.2 GPIO引腳描述 (162)
5.2.3 GPIO引腳函式館 (164)
5.2.4 GPIO的硬體電路 (172)
5.2.5 基礎實驗一:汽車安全帶報警指示燈與蜂鳴器實驗 (174)
5.3 ADC(模數轉換)模組 (179)
5.3.1 ADC特性 (179)
5.3.2 ADC引腳的描述 (180)
5.3.3 ADC庫函式 (182)
5.3.4 ADC硬體電路 (192)
5.3.5 基礎實驗二:汽車發動機水溫測量系統實驗 (194)
5.4 EXTI中斷模組 (208)
5.4.1 外部中斷/事件的分類 (208)
5.4.2 外部中斷/事件的結構 (210)
5.4.3 外部中斷/事件的執行順序與嵌套 (211)
5.4.4 外部中斷/事件的選擇 (213)
5.4.5 外部中斷/事件庫函式 (214)
5.4.6 外部中斷/事件硬體電路 (221)
5.4.7 基礎實驗三:汽車緊急制動實驗 (223)
5.5 高級控制定時器TIM1 (230)
5.5.1 TIM1的結構特性 (231)
5.5.2 TIM1的功能 (232)
5.5.3 TIM1的控制暫存器 (239)
5.5.4 TIM1庫函式的功能說明 (244)
5.5.5 基礎實驗四:PWM驅動汽車燈光照明實驗 (251)
5.6 通用定時器TIMx (257)
5.6.1 TIMx的結構特性 (258)
5.6.2 TIMx的功能 (259)
5.6.3 TIMx的控制暫存器 (263)
5.6.4 基礎實驗五:汽車輪胎壓力檢測實驗 (267)
第6章 STM32F103XX功能模組(2) (275)
6.1 實時時鐘模組 (276)
6.1.1 RTC實時時鐘的功能特性 (276)
6.1.2 RTC實時時鐘的結構 (277)
6.1.3 RTC暫存器的操作方式 (278)
6.1.4 RTC實時時鐘的暫存器 (280)
6.1.5 RTC實時時鐘的庫函式 (281)
6.1.6 基礎實驗一:車載時鐘與電子日曆 (290)
6.2 看門狗WatchDog模組 (299)
6.2.1 STM32系列處理器中的看門狗 (300)
6.2.2 獨立看門狗的功能特性 (300)
6.2.3 獨立看門狗的暫存器 (301)
6.2.4 獨立看門狗的庫函式 (302)
6.2.5 視窗看門狗的功能特性 (306)
6.2.6 視窗看門狗的暫存器 (308)
6.2.7 視窗看門狗的庫函式 (309)
6.2.8 基礎實驗二:基於秒中斷的新能源汽車電池SOC值的檢測實驗 (313)
6.3 USART串口通信模組 (318)
6.3.1 USART的功能特性 (320)
6.3.2 USART的字元描述 (321)
6.3.3 USART的傳送器 (322)
6.3.4 USART的接收器 (324)
6.3.5 USART的中斷請求 (327)
6.3.6 USART的暫存器 (328)
6.3.7 USART的庫函式 (329)
6.3.8 基礎實驗三:汽車輪速檢測實驗 (343)
6.4 CAN通信模組 (349)
6.4.1 CAN的功能結構 (350)
6.4.2 CAN的運行模式 (351)
6.4.3 CAN的功能描述 (353)
6.4.4 CAN的暫存器 (360)
6.4.5 CAN的庫函式 (362)
6.4.6 基礎實驗四:基於CAN通信的車載電動機冷控實驗 (380)
綜合篇
第7章 STM32F103XX內部資源的C編程實例 (385)
7.1 基於STM32F103XX的車載溫/濕度檢測儀的設計 (386)
7.1.1 項目內容的概述 (386)
7.1.2 項目需求分析 (390)
7.2 系統硬體電路設計 (391)
7.2.1 系統電源設計 (391)
7.2.2 感測電路及運放電路的設計 (395)
7.2.3 DS18B20數字式溫度感測器的電路設計 (397)
7.2.4 SHTXX數字式濕度感測器的電路設計 (398)
7.2.5 串口通信與BOOT啟動電路的設計 (400)
7.2.6 人機互動界面 (401)
7.3 系統軟體工程的設計 (403)
第8章 STM32F103XX外部接口的C編程實例 (406)
8.1 基於TFT觸控螢幕的汽車故障線上檢測診斷教學平台設計 (407)
8.1.1 項目內容概述 (407)
8.1.2 項目需求分析 (408)
8.2 系統硬體電路設計 (411)
8.2.1 系統電源設計 (411)
8.2.2 系統邏輯控制電路設計 (414)
8.2.3 TFT LCD觸控螢幕電路設計 (416)
8.2.4 串口通信電路與JTAG電路 (419)
8.3 系統軟體工程設計 (420)