定 價:68 元
叢書名:嵌入式技術(shù)與應(yīng)用叢書
當前圖書已被 2 所學(xué)校薦購過!
查看明細
- 作者:沈紅衛(wèi)
- 出版時間:2025/3/1
- ISBN:9787121496868
- 出 版 社:電子工業(yè)出版社
- 中圖法分類:TP368.1
- 頁碼:
- 紙張:
- 版次:
- 開本:
本書涵蓋了基于ARM的STM32 HAL庫的基本概念、基本原理、應(yīng)用技術(shù)。硬件原理的闡述以學(xué)生"適用、易學(xué)、掌握”為原則,降低讀者入門和理解的難度。STM32的軟件設(shè)計基于HAL庫,方便讀者上手。本書在內(nèi)容組織和框架設(shè)計上具有兩個鮮明特點:全案例、基于讀者學(xué)習(xí)。從讀者學(xué)習(xí)的角度,組織每個章節(jié)的內(nèi)容體系,對STM32常用的典型外設(shè)模塊的原理及其應(yīng)用設(shè)計均以若干個完整案例呈現(xiàn),同時也給出了一個完整的綜合性工程案例,這些都十分有利于學(xué)習(xí)者學(xué)習(xí)和模仿。
沈紅衛(wèi),歷任紹興文理學(xué)院自動化系副教授,紹興文理學(xué)院教務(wù)處處長(教授),現(xiàn)任紹興文理學(xué)院工學(xué)院院長。主要著作有《單片機應(yīng)用系統(tǒng)設(shè)計實例與分析》、《基于單片機的智能系統(tǒng)設(shè)計與實現(xiàn)》等。
目 錄
第一篇 基于HAL + STM32CubeIDE
第1章 如何學(xué)習(xí)STM322
1.1 學(xué)習(xí)STM32必須具備的基礎(chǔ)知識2
1.2 STM32的基本架構(gòu)和基本原理3
1.2.1 嵌入式與ARM3
1.2.2 什么是STM324
1.2.3 STM32的內(nèi)部結(jié)構(gòu)5
1.2.4 STM32的時鐘樹6
1.2.5 STM32典型芯片9
1.3 STM32的開發(fā)10
1.3.1 STM32的4種開發(fā)模式10
1.3.2 HAL庫的文件結(jié)構(gòu)12
1.3.3 基于HAL庫開發(fā)中必須掌握的幾個概念14
1.3.4 如何學(xué)習(xí)STM3216
1.3.5 學(xué)習(xí)STM32所需工具和平臺16
1.4 STM32的最小系統(tǒng)—學(xué)習(xí)和開發(fā)的最小平臺18
1.5 本章小結(jié)20
思考與實踐21
第2章 STM32的工程創(chuàng)建和調(diào)試22
2.1 STM32CubeMX與STM32CubeIDE22
2.1.1 什么是STM32CubeMX22
2.1.2 STM32CubeIDE與STM32CubeMX的區(qū)別22
2.2 STM32CubeIDE開發(fā)平臺的搭建23
2.2.1 IDE平臺的安裝23
2.2.2 Packs包下載與安裝26
2.3 新建工程流程29
2.4 STM32CubeIDE的功能及其基本操作37
2.4.1 工具欄介紹37
2.4.2 Debug調(diào)試模式38
2.4.3 窗口和文本設(shè)置39
2.5 本章小結(jié)41
思考與實踐41
第3章 通用輸入/輸出(GPIO)口42
3.1 STM32 GPIO口概述42
3.2 GPIO口的工作原理42
3.2.1 GPIO引腳介紹42
3.2.2 GPIO口的內(nèi)部結(jié)構(gòu)43
3.2.3 GPIO口的工作模式46
3.3 GPIO口配置與應(yīng)用50
3.3.1 GPIO口配置解析50
3.3.2 GPIO函數(shù)51
3.4 GPIO應(yīng)用實例52
3.4.1 GPIO輸出控制52
3.4.2 單功能按鍵輸入57
3.4.3 復(fù)用功能按鍵輸入61
3.5 本章小結(jié)63
思考與實踐64
第4章 中斷65
4.1 中斷及其基本原理65
4.1.1 什么是中斷65
4.1.2 中斷系統(tǒng)66
4.1.3 中斷處理流程67
4.2 嵌套向量中斷控制器68
4.2.1 嵌套向量中斷控制器的主要功能68
4.2.2 異常和中斷69
4.2.3 EXTI71
4.3 EXTI的配置與應(yīng)用73
4.3.1 EXTI配置解析73
4.3.2 EXTI函數(shù)76
4.4 EXTI應(yīng)用實例76
4.4.1 EXTI控制LED翻轉(zhuǎn)76
4.4.2 EXTI嵌套LED控制83
4.5 本章小結(jié)89
思考與實踐90
第5章 串口(USART)91
5.1 串行通信91
5.1.1 嵌入式系統(tǒng)中的通信91
5.1.2 同步/異步串行通信92
5.1.3 UART93
5.2 STM32的USART95
5.2.1 USART接口95
5.2.2 5路USART的引腳關(guān)系96
5.2.3 USART的應(yīng)用步驟97
5.3 串口通信配置97
5.3.1 串口設(shè)備配置解析97
5.3.2 常用的UART函數(shù)99
5.3.3 串口重定向100
5.3.4 串口調(diào)試助手101
5.4 串口應(yīng)用實例102
5.4.1 串口收發(fā)輪詢方式102
5.4.2 串口收發(fā)中斷方式109
5.4.3 串口空閑中斷方式111
5.5 本章小結(jié)112
思考與實踐112
第6章 I2C和SPI113
6.1 STM32的I2C總線113
6.1.1 I2C總線概述113
6.1.2 I2C總線的工作原理和注意事項114
6.1.3 STM32的I2C總線的基本特點116
6.2 STM32的I2C總線的應(yīng)用要領(lǐng)117
6.2.1 關(guān)于STM32的I2C模塊117
6.2.2 I2C總線死鎖的原因及其解決辦法118
6.2.3 STM32的I2C接收和發(fā)送流程118
6.3 硬件I2C與軟件I2C119
6.3.1 硬件I2C設(shè)備配置流程119
6.3.2 接口函數(shù)及其應(yīng)用123
6.3.3 軟件I2C實現(xiàn)126
6.4 STM32的SPI129
6.4.1 硬件結(jié)構(gòu)與時序129
6.4.2 STM32 SPI的構(gòu)成131
6.4.3 STM32的SPI的主要工作流程132
6.4.4 SPI函數(shù)及其應(yīng)用132
6.4.5 設(shè)備配置流程133
6.5 I2C和SPI應(yīng)用實例135
6.5.1 I2C讀寫AT24C02135
6.5.2 基于SPI總線實現(xiàn)OLED顯示140
6.6 本章小結(jié)152
思考與實踐153
第7章 定時器154
7.1 STM32定時器154
7.1.1 高級定時器154
7.1.2 通用定時器155
7.1.3 基本定時器156
7.2 PWM157
7.2.1 什么是PWM157
7.2.2 PWM的主要參數(shù)157
7.2.3 PWM的工作原理157
7.2.4 PWM的應(yīng)用158
7.3 定時器配置159
7.3.1 定時器模式159
7.3.2 定時器參數(shù)160
7.3.3 定時器中斷161
7.4 主要接口函數(shù)162
7.4.1 定時器啟停162
7.4.2 比較輸出162
7.4.3 PWM輸出163
7.4.4 輸入捕獲164
7.5 定時器應(yīng)用實例165
7.5.1 定時器控制LED165
7.5.2 PWM呼吸燈166
7.5.3 輸入捕獲168
7.6 本章小結(jié)171
思考與實踐173
第8章 直接存儲器訪問(DMA)174
8.1 STM32的DMA174
8.1.1 什么是DMA174
8.1.2 DMA控制器的功能框圖174
8.1.3 DMA的基本原理175
8.1.4 DMA控制器的主要特點175
8.2 DMA的配置要點176
8.2.1 DMA控制器配置參數(shù)176
8.2.2 DMA的優(yōu)先級及其仲裁176
8.2.3 DMA通道177
8.2.4 DMA中斷請求178
8.2.5 DMA注意事項178
8.3 DMA配置178
8.3.1 設(shè)備配置解析178
8.3.2 配置函數(shù)解析181
8.4 DMA應(yīng)用實例181
8.4.1 內(nèi)存到內(nèi)存?zhèn)鬏敺绞綉?yīng)用(MEMTOMEM)181
8.4.2 外設(shè)到內(nèi)存?zhèn)鬏敺绞綉?yīng)用184
8.5 本章小結(jié)187
思考與實踐187
第9章 ADC188
9.1 STM32F1的ADC188
9.1.1 ADC及其基本特性188
9.1.2 ADC誤差來源及消除措施190
9.2 STM32外設(shè)模塊ADC的工作流程與編程要點191
9.2.1 ADC的工作流程191
9.2.2 ADC編程的要點192
9.3 ADC配置193
9.3.1 設(shè)備配置解析193
9.3.2 接口函數(shù)200
9.4 ADC應(yīng)用實例203
9.4.1 單ADC單通道應(yīng)用示例203
9.4.2 單ADC多通道應(yīng)用示例207
9.5 本章小結(jié)211
思考與實踐211
第10章 DAC212
10.1 STM32的DAC212
10.1.1 DAC的功能、特點212
10.1.2 DAC的主要技術(shù)參數(shù)213
10.1.3 DAC配置的基本過程214
10.2 DAC配置214
10.2.1 設(shè)備配置解析214
10.2.2 接口函數(shù)217
10.3 DAC應(yīng)用實例219
10.3.1 DAC輸出正弦波219
10.3.2 DAC輸出三角波221
10.4 本章小結(jié)224
思考與實踐224
第11章 Flash225
11.1 STM32的Flash存儲器及其基本特性225
11.1.1 嵌入式系統(tǒng)中的存儲器225
11.1.2 Flash模塊的組織關(guān)系226
11.1.3 STM32的Flash架構(gòu)226
11.1.4 Flash的相關(guān)操作227
11.1.5 選項字節(jié)編程228
11.2 Flash配置與接口函數(shù)229
11.2.1 寫操作函數(shù)229
11.2.2 解鎖與上鎖函數(shù)230
11.2.3 Flash擦除函數(shù)230
11.2.4 讀操作231
11.2.5 選項字節(jié)相關(guān)操作函數(shù)231
11.3 Flash應(yīng)用實例232
11.3.1 功能描述232
11.3.2 軟件設(shè)計232
11.3.3 實驗結(jié)果234
?
11.4 本章小結(jié)237
思考與實踐237
第12章 綜合性設(shè)計項目238
12.1 信號發(fā)生與采集238
12.1.1 項目性能和功能要求238
12.1.2 外設(shè)配置238
12.1.3 程序設(shè)計242
12.1.4 運行結(jié)果242
12.2 煙霧報警及其處置的模擬243
12.2.1 項目設(shè)計要求243
12.2.2 外圍電路設(shè)計243
12.2.3 外設(shè)配置244
12.2.4 程序設(shè)計245
12.2.5 運行結(jié)果246
12.3 串口觸摸屏設(shè)計246
12.3.1 功能描述246
12.3.2 串口觸摸屏的程序設(shè)計246
12.3.3 STM32的外設(shè)配置249
12.3.4 程序設(shè)計250
12.3.5 運行結(jié)果251
12.4 本章小結(jié)251
思考與實踐251
第二篇 基于固件庫+Keil(MDK-ARM)
第13章 基于固件庫的開發(fā)及其示例254
13.1 STM32的最小系統(tǒng)254
13.2 STM32工程模板的建立255
13.2.1 STM32的固件庫255
13.2.2 新建工程模板的第一步——復(fù)制固件庫文件259
13.2.3 新建工程模板的第二步——新建一個Keil工程260
13.2.4 關(guān)于創(chuàng)建工程模板的簡單小結(jié)266
13.3 程序的燒寫267
13.3.1 基于串口的程序下載(燒寫)方式268
13.3.2 基于JTAG(SWD)的程序下載(燒寫)方式269
13.4 程序的調(diào)試271
13.5 模板的使用273
13.6 3個GPIO輸出的范例——STM32中實現(xiàn) 延時的三種常用方法274
13.6.1 第一個LED工程——基于延時函數(shù)的延時274
13.6.2 第二個LED工程——SysTick中斷延時276
13.6.3 第三個LED工程——定時器中斷延時278
13.7 本章小結(jié)281
思考與實踐282
第14章 液晶顯示在STM32中的應(yīng)用——基于固件庫283
14.1 STM32與12864液晶模塊連接的硬件接口283
14.1.1 12864液晶模塊的基本原理283
14.1.2 硬件接口284
14.2 STM32與12864液晶模塊連接的軟件 接口實現(xiàn)——查詢“忙”狀態(tài)284
14.2.1 程序設(shè)計思想284
14.2.2 程序?qū)崿F(xiàn)285
14.2.3 程序演示303
14.3 本章小結(jié)304
思考與實踐304