STM32 單片機原理與項目實戰

劉龍 高照玲 田華

  • 出版商: 人民郵電
  • 出版日期: 2022-09-01
  • 售價: $539
  • 貴賓價: 9.5$512
  • 語言: 簡體中文
  • 頁數: 352
  • ISBN: 7115578516
  • ISBN-13: 9787115578518
  • 相關分類: STM32
  • 立即出貨 (庫存 < 3)

  • STM32 單片機原理與項目實戰-preview-1
  • STM32 單片機原理與項目實戰-preview-2
STM32 單片機原理與項目實戰-preview-1

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

商品描述

近年來,嵌入式系統開發技術和嵌入式產品的發展勢頭迅猛,其應用領域涉及通信、消費電子、汽車工業等各個方面。嵌入式系統的設計與開發是一項實踐性很強的專業技術,要求從業者深刻理解理論知識,並將原理與實踐緊密結合。

本書旨在以實踐驅動學習,通過“做中學”的方式讓讀者掌握相關知識點。全書內容分為10章,主要介紹了STM32系列處理器的基礎知識、開發工具、基本系統、通用輸入輸出埠應用、系統節拍定時器、中斷系統、定時器、串行通信、模數轉換器,並展示了一個綜合項目—溫度控制系統。書中提供了19個範例,這些範例可以幫助讀者循序漸進地掌握嵌入式系統開發的核心技術。

本書適合電子信息、通信、控制、電腦等相關專業的師生閱讀,也適合作為嵌入式系統開發的入門教程,是一本既適合自學入門,又適合教學參考的圖書。

作者簡介

刘龙,副教授,博士,任大连市人工智能协会副理事长,辽宁省一流本科教育示范专业负责人。2006年起至今从事嵌入式系统方向教学工作10余年,对相关领域有一定了解。多年以来,发表的重要学术文章达20余篇,主持并参与省部级项目5项,主持省级教改项目1项,获得省级教学成果奖3项。

高照玲,研究生学历,毕业于哈尔滨工程大学。2006年参加教学工作,主要研究方向为导航制导与控制和嵌入式系统应用。

田华,研究生学历,毕业于贵州大学理学院。2009年参加教学工作,主要研究方向为嵌入式控制系统的设计应用。

目錄大綱

第 1章 STM32單片機的基礎知識 1

1.1 單片機的由來與發展歷史 2

1.1.1 嵌入式系統 2

1.1.2 嵌入式電腦系統 4

1.1.3 單片機的發展歷史 5

1.1.4 單片機的發展趨勢 6

1.2 單片機的應用 9

1.2.1 單片機的應用結構 9

1.2.2 單片機的應用領域 10

1.3 其他單片機 11

1.4 ARM簡介 12

1.4.1 ARM公司簡介 12

1.4.2 ARM的體系結構 12

1.4.3 ARM的發展 13

1.5 Cortex-M3內核與STM32簡介 14

1.5.1 什麽是Cortex-M3

內核 15

1.5.2 什麽是STM32 18

1.5.3 STM32單片機的時鐘 21

1.6 STM32單片機的C語言編程

知識點 23

1.6.1 STM32編程的特點 23

1.6.2 STM32編程中的數據

類型 24

1.6.3 STM32編程常用的C語言

知識點 26

1.7 什麽是CMSIS固件庫 32

1.7.1 CMSIS固件庫簡介 32

1.7.2 CMSIS固件庫設計及

規範 33

1.8 習題與鞏固 34

第 2章 STM32單片機的開發工具 36

2.1 STM32的開發工具一覽 37

2.1.1 硬件開發工具 37

2.1.2 軟件開發平臺 38

2.2 硬件開發工具JLink 38

2.2.1 JLink的驅動安裝及調試

接口 38

2.2.2 硬件調試接口JTAG/SWD

的定義 39

2.3 軟件開發環境MDK的使用

方法 42

2.3.1 MDK的安裝 43

2.3.2 MDK工程模塊的創建 43

2.4 習題與鞏固 65

第3章 STM32單片機的基本系統 67

3.1 單片機的基本系統組成元素 68

3.2 項目實戰:電源電路的設計 69

3.2.1 概述 69

3.2.2 範例1:電源電路的

設計 70

3.2.3 電源電路設計註意事項 73

3.3 項目實戰:復位電路的設計 73

3.3.1 概述 73

3.3.2 範例2:復位電路的

設計 74

3.3.3 復位電路設計註意事項 75

3.4 項目實戰:時鐘電路的設計 76

3.4.1 概述 76

3.4.2 範例3:時鐘電路的

設計 76

3.4.3 時鐘電路設計註意事項 76

3.5 項目實戰:調試電路的設計 77

3.5.1 概述 77

3.5.2 範例4:調試電路的

設計 77

3.5.3 調試電路設計註意

事項 78

3.6 項目實戰:啟動電路的設計 78

3.6.1 概述 78

3.6.2 啟動電路分析及工作

原理 79

3.7 習題與鞏固 80

第4章 通用輸入輸出埠應用 81

4.1 GPIO工作原理 82

4.1.1 STM32F103C8T6單片機的

引腳 82

4.1.2 引腳內部構造 85

4.1.3 GPIO的8種工作模式 86

4.2 GPIO寄存器功能詳解 90

4.2.1 埠配置低寄存器(GPIOX_CRL) 90

4.2.2 埠配置高寄存器(GPIOX_CRH) 91

4.2.3 埠輸入數據寄存器(GPIOX_IDR) 92

4.2.4 埠輸出數據寄存器(GPIOX_ODR) 92

4.2.5 埠位設置/清除寄存器

(GPIOX_BSRR) 93

4.2.6 埠位清除寄存器

(GPIOX_BRR) 94

4.3 利用庫函數使用GPIO的方法 94

4.3.1 初始化埠 95

4.3.2 初始化時鐘 97

4.3.3 GPIO引腳控制 103

4.4 項目實戰:開關量驅動外設 104

4.4.1 GPIO硬件接口電路設計

要點 104

4.4.2 範例5:GPIO驅動發光

二極管 105

4.4.3 範例6:GPIO驅動

蜂鳴器 109

4.4.4 範例7:GPIO驅動

數碼管 112

4.5 習題與鞏固 117

第5章 系統節拍定時器 119

5.1 系統節拍定時器概述 120

5.2 系統節拍定時器的相關寄存器

功能詳解 121

5.2.1 控制和狀態寄存器

CTRL 121

5.2.2 重裝載值寄存器

LOAD 122

5.2.3 當前值寄存器VAL 122

5.3 利用庫函數設置GPIO的方法 122

5.3.1 系統節拍定時器結構體 122

5.3.2 系統節拍定時器庫函數 123

5.3.3 範例8:利用系統節拍

定時器精確延時 123

5.4 項目實戰:人機界面之液晶

顯示 124

5.4.1 液晶顯示器簡介 125

5.4.2 液晶模塊引腳分佈 125

5.4.3 液晶模塊的控制指令 126

5.4.4 液晶顯示器的工作時序 128

5.4.5 液晶顯示器的字符集 129

5.4.6 範例9:利用液晶顯示器

輸出信息 130

5.5 習題與鞏固 136

第6章 STM32單片機的中斷系統 138

6.1 中斷相關的概念 139

6.1.1 什麽是中斷 139

6.1.2 中斷處理過程 140

6.1.3 什麽是中斷源 140

6.1.4 什麽是中斷信號 141

6.1.5 中斷屏蔽的概念 141

6.1.6 中斷優先級及中斷嵌套 142

6.1.7 Cortex-M3內核的嵌套

向量中斷控制器 144

6.1.8 STM32的中斷控制

固件庫 147

6.2 STM32的中斷系統 148

6.2.1 什麽是異常 148

6.2.2 STM32的中斷通道 150

6.2.3 固件庫中中斷向量區的

定義 154

6.2.4 利用庫函數控制NVIC

方法 156

6.3 STM32單片機的EXTI 157

6.3.1 什麽是外部中斷/事件

控制器EXTI 157

6.3.2 EXTI功能結構 158

6.3.3 中斷/事件線的種類 160

6.3.4 STM32固件庫中EXTI的

初始化結構體 161

6.3.5 STM32固件庫中EXTI的

相關函數 163

6.4 項目實戰:人機交互之按鍵 164

6.4.1 按鍵分類 165

6.4.2 按鍵的接法 165

6.4.3 矩陣鍵盤掃描原理 167

6.4.4 按鍵的消抖處理 167

6.4.5 按鍵程序處理方法 168

6.4.6 範例10:按鍵控制

彩燈 168

6.5 習題與鞏固 171

第7章 STM32單片機的定時器 175

7.1 定時器的工作原理 176

7.1.1 定時器簡介 176

7.1.2 通用定時器的時鐘源 176

7.1.3 通用定時器的定時

時鐘 177

7.1.4 定時器功能 178

7.1.5 定時器定時時間 179

7.1.6 定時器的計數模式 179

7.2 通用定時器的相關寄存器功能

詳解 179

7.2.1 控制寄存器1

(TIMx_CR1) 179

7.2.2 中斷使能寄存器(TIMx_DIER) 181

7.2.3 預分頻寄存器

(TIMx_PSC) 182

7.2.4 計數器(TIMx_CNT) 182

7.2.5 自動重裝載寄存器

(TIMx_ARR) 183

7.2.6 狀態寄存器

(TIMx_SR) 183

7.3 固件庫中定時器的相關內容 185

7.3.1 固件庫中定時器的

結構體 185

7.3.2 固件庫中定時器的

相關庫函數 186

7.3.3 利用固件庫設置通用定時器方法 187

7.3.4 範例11:利用通用定時器

進行精確定時 189

7.4 PWM原理 191

7.4.1 什麽是PWM 191

7.4.2 STM32單片機如何產生

PWM信號 192

7.4.3 STM32單片機PWM信號

輸出控制 193

7.4.4 PWM信號的輸出引腳

控制 193

7.5 PWM相關寄存器的功能

詳解 196

7.5.1 捕獲/比較模式寄存器

(TIMx_CCMR1/2) 196

7.5.2 捕獲/比較使能寄存器

(TIMx_CCER) 198

7.5.3 捕獲/比較寄存器

(TIMx_CCR1~TIMx_CCR4) 199

7.6 固件庫中PWM的相關內容 199

7.6.1 PWM功能的相關

結構體 199

7.6.2 PWM功能的相關庫

函數 201

7.6.3 使用固件庫設置PWM的

方法 202

7.6.4 範例12:三色彩燈

控制 203

7.7 習題與鞏固 205

第8章 STM32單片機的串行通信 207

8.1 串行通信的基本概念 208

8.1.1 數據通信方式 208

8.1.2 異步傳輸的字符

數據幀 211

8.1.3 異步通信 213

8.1.4 波特率 213

8.2 RS-232C總線標準 214

8.3 STM32系統的RS-232C傳輸

接口 217

8.3.1 RS-232C的電平轉換 218

8.3.2 典型的RS-232C接口

電路 219

8.4 不同單片機之間的串行總線

連接 220

8.4.1 微處理器間直接通信 220

8.4.2 利用RS-232通信 220

8.5 STM32的串行通信接口 220

8.5.1 STM32的UART特性 220

8.5.2 STM32的UART引腳 221

8.5.3 STM32的UART結構 223

8.6 STM32串行埠的使用方法 225

8.6.1 STM32的UART時鐘

控制 225

8.6.2 STM32的UART引腳

配置 225

8.6.3 STM32的串口波特率 226

8.6.4 STM32的UART寄存器

功能詳解 227

8.6.5 STM32的UART的

控制 233

8.6.6 STM32的UART的數據

讀寫 237

8.7 STM32的UART中斷使用 239

8.7.1 STM32的UART的收發

中斷控制 239

8.7.2 STM32的UART中斷

使用方法 240

8.8 添加printf功能 243

8.9 主從機通信 244

8.9.1 範例13:查詢法 244

8.9.2 範例14:中斷法 247

8.10 習題與鞏固 249

第9章 STM32單片機的模數轉換器 251

9.1 輸入信號分類形式 252

9.1.1 模擬信號和數字信號 252

9.1.2 電壓信號和電流信號 252

9.1.3 單次信號和連續信號 253

9.2 模數轉換的原理 253

9.3 模數轉換器的工作過程 253

9.4 模數轉換器的相關概念 254

9.4.1 基準源 254

9.4.2 模數轉換器的分類 254

9.4.3 模數轉換器的主要技術

指標 255

9.5 STM32的模數轉換器 256

9.5.1 STM32的模數轉換器

特性 256

9.5.2 STM32的模數轉換器

功能剖析 257

9.6 STM32的ADC相關寄存器功能

詳解 262

9.6.1 ADC控制寄存器1

(ADC_CR1) 262

9.6.2 ADC控制寄存器2

(ADC_CR2) 265

9.6.3 ADC採樣時間寄存器1

(ADC_SMPR1) 267

9.6.4 ADC採樣時間寄存器2

(ADC_SMPR2) 268

9.6.5 ADC註入數據寄存器x

(ADC_JDRx) 268

9.6.6 ADC規則數據寄存器(ADC_DR) 269

9.6.7 ADC狀態寄存器

(ADC_SR) 270

9.7 STM32的ADC轉換模式 271

9.7.1 單次轉換模式 271

9.7.2 連續轉換模式 271

9.8 固件庫中的ADC結構體及

庫函數 272

9.8.1 ADC初始化結構體 272

9.8.2 ADC相應庫函數 274

9.9 ADC應用設計深入討論 281

9.9.1 工作電壓的穩定性 282

9.9.2 參考電壓的確定 282

9.9.3 採樣時鐘的選擇 282

9.9.4 模擬噪聲的抑制 282

9.9.5 校準 283

9.9.6 ADC開關控制 283

9.10 數字電位器 284

9.10.1 範例15:電位器

原理圖 284

9.10.2 範例16:讀取模數轉換器

通道電壓—查詢法 284

9.10.3 範例17:讀取模數轉換器

通道電壓—中斷法 287

9.11 習題與鞏固 291

第 10章 綜合項目之溫度控制系統 293

10.1 單片機系統的程序結構 294

10.1.1 任務的劃分 294

10.1.2 程序實時性 296

10.1.3 前後台程序結構的優點與

缺點 297

10.1.4 改進前後台程序的

方法 298

10.1.5 範例18:緩沖區(FIFO)

應用實例 302

10.2 利用狀態機改進單片機系統 317

10.2.1 初步認識狀態機 317

10.2.2 狀態機描述方法 322

10.2.3 通過狀態轉移圖生成

代碼 325

10.2.4 範例19:狀態機項目 328

10.3 溫度傳感器 349

10.4 習題與鞏固 352