STM32單片機(jī)原理與項(xiàng)目實(shí)戰(zhàn)
定 價(jià):89.8 元
- 作者:劉龍 高照玲 田華
- 出版時(shí)間:2022/9/1
- ISBN:9787115578518
- 出 版 社:人民郵電出版社
- 中圖法分類:TP368.1
- 頁(yè)碼:352
- 紙張:
- 版次:01
- 開(kāi)本:16開(kāi)
近年來(lái),嵌入式系統(tǒng)開(kāi)發(fā)技術(shù)和嵌入式產(chǎn)品的發(fā)展勢(shì)頭迅猛,其應(yīng)用領(lǐng)域涉及通信、消費(fèi)電子、汽車工業(yè)等各個(gè)方面。嵌入式系統(tǒng)的設(shè)計(jì)與開(kāi)發(fā)是一項(xiàng)實(shí)踐性很強(qiáng)的專業(yè)技術(shù),要求從業(yè)者深刻理解理論知識(shí),并將原理與實(shí)踐緊密結(jié)合。
本書旨在以實(shí)踐驅(qū)動(dòng)學(xué)習(xí),通過(guò)“做中學(xué)”的方式讓讀者掌握相關(guān)知識(shí)點(diǎn)。全書內(nèi)容分為10章,主要介紹了STM32系列處理器的基礎(chǔ)知識(shí)、開(kāi)發(fā)工具、基本系統(tǒng)、通用輸入輸出端口應(yīng)用、系統(tǒng)節(jié)拍定時(shí)器、中斷系統(tǒng)、定時(shí)器、串行通信、模數(shù)轉(zhuǎn)換器,并展示了一個(gè)綜合項(xiàng)目—溫度控制系統(tǒng)。書中提供了19個(gè)范例,這些范例可以幫助讀者循序漸進(jìn)地掌握嵌入式系統(tǒng)開(kāi)發(fā)的核心技術(shù)。
本書適合電子信息、通信、控制、計(jì)算機(jī)等相關(guān)專業(yè)的師生閱讀,也適合作為嵌入式系統(tǒng)開(kāi)發(fā)的入門教程,是一本既適合自學(xué)入門,又適合教學(xué)參考的圖書。
1.本書以實(shí)踐驅(qū)動(dòng)學(xué)習(xí),通過(guò)“做中學(xué)”的方式讓讀者掌握相關(guān)知識(shí)點(diǎn),從理論知識(shí)過(guò)渡到掌握實(shí)戰(zhàn)技能;
2.以工程教育理念為指導(dǎo),合理安排教學(xué)結(jié)構(gòu),采用典型情境任務(wù)開(kāi)發(fā)的方式介紹相應(yīng)知識(shí)點(diǎn);
3.本書旨在服務(wù)于有自學(xué)需求和教學(xué)需求的讀者,并通過(guò)強(qiáng)大的配套資源優(yōu)化閱讀體驗(yàn):
為準(zhǔn)備自學(xué)的讀者提供講解視頻、案例資源、練習(xí)題及參考答案等;
為有教學(xué)需求的讀者提供課程標(biāo)準(zhǔn)、教學(xué)日歷、課程導(dǎo)學(xué)、教案、PPT講稿、教學(xué)案例等。
劉龍,副教授,博士,任大連市人工智能協(xié)會(huì)副理事長(zhǎng),遼寧省一流本科教育示范專業(yè)負(fù)責(zé)人。2006年起至今從事嵌入式系統(tǒng)方向教學(xué)工作10余年,對(duì)相關(guān)領(lǐng)域有一定了解。多年以來(lái),發(fā)表的重要學(xué)術(shù)文章達(dá)20余篇,主持并參與省部級(jí)項(xiàng)目5項(xiàng),主持省級(jí)教改項(xiàng)目1項(xiàng),獲得省級(jí)教學(xué)成果獎(jiǎng)3項(xiàng)。
高照玲,研究生學(xué)歷,畢業(yè)于哈爾濱工程大學(xué)。2006年參加教學(xué)工作,主要研究方向?yàn)閷?dǎo)航制導(dǎo)與控制和嵌入式系統(tǒng)應(yīng)用。
田華,研究生學(xué)歷,畢業(yè)于貴州大學(xué)理學(xué)院。2009年參加教學(xué)工作,主要研究方向?yàn)榍度胧娇刂葡到y(tǒng)的設(shè)計(jì)應(yīng)用。
第 1章 STM32單片機(jī)的基礎(chǔ)知識(shí) 1
1.1 單片機(jī)的由來(lái)與發(fā)展歷史 2
1.1.1 嵌入式系統(tǒng) 2
1.1.2 嵌入式計(jì)算機(jī)系統(tǒng) 4
1.1.3 單片機(jī)的發(fā)展歷史 5
1.1.4 單片機(jī)的發(fā)展趨勢(shì) 6
1.2 單片機(jī)的應(yīng)用 9
1.2.1 單片機(jī)的應(yīng)用結(jié)構(gòu) 9
1.2.2 單片機(jī)的應(yīng)用領(lǐng)域 10
1.3 其他單片機(jī) 11
1.4 ARM簡(jiǎn)介 12
1.4.1 ARM公司簡(jiǎn)介 12
1.4.2 ARM的體系結(jié)構(gòu) 12
1.4.3 ARM的發(fā)展 13
1.5 Cortex-M3內(nèi)核與STM32簡(jiǎn)介 14
1.5.1 什么是Cortex-M3
內(nèi)核 15
1.5.2 什么是STM32 18
1.5.3 STM32單片機(jī)的時(shí)鐘 21
1.6 STM32單片機(jī)的C語(yǔ)言編程
知識(shí)點(diǎn) 23
1.6.1 STM32編程的特點(diǎn) 23
1.6.2 STM32編程中的數(shù)據(jù)
類型 24
1.6.3 STM32編程常用的C語(yǔ)言
知識(shí)點(diǎn) 26
1.7 什么是CMSIS固件庫(kù) 32
1.7.1 CMSIS固件庫(kù)簡(jiǎn)介 32
1.7.2 CMSIS固件庫(kù)設(shè)計(jì)及
規(guī)范 33
1.8 習(xí)題與鞏固 34
第 2章 STM32單片機(jī)的開(kāi)發(fā)工具 36
2.1 STM32的開(kāi)發(fā)工具一覽 37
2.1.1 硬件開(kāi)發(fā)工具 37
2.1.2 軟件開(kāi)發(fā)平臺(tái) 38
2.2 硬件開(kāi)發(fā)工具JLink 38
2.2.1 JLink的驅(qū)動(dòng)安裝及調(diào)試
接口 38
2.2.2 硬件調(diào)試接口JTAG/SWD
的定義 39
2.3 軟件開(kāi)發(fā)環(huán)境MDK的使用
方法 42
2.3.1 MDK的安裝 43
2.3.2 MDK工程模塊的創(chuàng)建 43
2.4 習(xí)題與鞏固 65
第3章 STM32單片機(jī)的基本系統(tǒng) 67
3.1 單片機(jī)的基本系統(tǒng)組成元素 68
3.2 項(xiàng)目實(shí)戰(zhàn):電源電路的設(shè)計(jì) 69
3.2.1 概述 69
3.2.2 范例1:電源電路的
設(shè)計(jì) 70
3.2.3 電源電路設(shè)計(jì)注意事項(xiàng) 73
3.3 項(xiàng)目實(shí)戰(zhàn):復(fù)位電路的設(shè)計(jì) 73
3.3.1 概述 73
3.3.2 范例2:復(fù)位電路的
設(shè)計(jì) 74
3.3.3 復(fù)位電路設(shè)計(jì)注意事項(xiàng) 75
3.4 項(xiàng)目實(shí)戰(zhàn):時(shí)鐘電路的設(shè)計(jì) 76
3.4.1 概述 76
3.4.2 范例3:時(shí)鐘電路的
設(shè)計(jì) 76
3.4.3 時(shí)鐘電路設(shè)計(jì)注意事項(xiàng) 76
3.5 項(xiàng)目實(shí)戰(zhàn):調(diào)試電路的設(shè)計(jì) 77
3.5.1 概述 77
3.5.2 范例4:調(diào)試電路的
設(shè)計(jì) 77
3.5.3 調(diào)試電路設(shè)計(jì)注意
事項(xiàng) 78
3.6 項(xiàng)目實(shí)戰(zhàn):?jiǎn)?dòng)電路的設(shè)計(jì) 78
3.6.1 概述 78
3.6.2 啟動(dòng)電路分析及工作
原理 79
3.7 習(xí)題與鞏固 80
第4章 通用輸入輸出端口應(yīng)用 81
4.1 GPIO工作原理 82
4.1.1 STM32F103C8T6單片機(jī)的
引腳 82
4.1.2 引腳內(nèi)部構(gòu)造 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 端口輸入數(shù)據(jù)寄存器(GPIOX_IDR) 92
4.2.4 端口輸出數(shù)據(jù)寄存器(GPIOX_ODR) 92
4.2.5 端口位設(shè)置/清除寄存器
(GPIOX_BSRR) 93
4.2.6 端口位清除寄存器
(GPIOX_BRR) 94
4.3 利用庫(kù)函數(shù)使用GPIO的方法 94
4.3.1 初始化端口 95
4.3.2 初始化時(shí)鐘 97
4.3.3 GPIO引腳控制 103
4.4 項(xiàng)目實(shí)戰(zhàn):開(kāi)關(guān)量驅(qū)動(dòng)外設(shè) 104
4.4.1 GPIO硬件接口電路設(shè)計(jì)
要點(diǎn) 104
4.4.2 范例5:GPIO驅(qū)動(dòng)發(fā)光
二極管 105
4.4.3 范例6:GPIO驅(qū)動(dòng)
蜂鳴器 109
4.4.4 范例7:GPIO驅(qū)動(dòng)
數(shù)碼管 112
4.5 習(xí)題與鞏固 117
第5章 系統(tǒng)節(jié)拍定時(shí)器 119
5.1 系統(tǒng)節(jié)拍定時(shí)器概述 120
5.2 系統(tǒng)節(jié)拍定時(shí)器的相關(guān)寄存器
功能詳解 121
5.2.1 控制和狀態(tài)寄存器
CTRL 121
5.2.2 重裝載值寄存器
LOAD 122
5.2.3 當(dāng)前值寄存器VAL 122
5.3 利用庫(kù)函數(shù)設(shè)置GPIO的方法 122
5.3.1 系統(tǒng)節(jié)拍定時(shí)器結(jié)構(gòu)體 122
5.3.2 系統(tǒng)節(jié)拍定時(shí)器庫(kù)函數(shù) 123
5.3.3 范例8:利用系統(tǒng)節(jié)拍
定時(shí)器精確延時(shí) 123
5.4 項(xiàng)目實(shí)戰(zhàn):人機(jī)界面之液晶
顯示 124
5.4.1 液晶顯示器簡(jiǎn)介 125
5.4.2 液晶模塊引腳分布 125
5.4.3 液晶模塊的控制指令 126
5.4.4 液晶顯示器的工作時(shí)序 128
5.4.5 液晶顯示器的字符集 129
5.4.6 范例9:利用液晶顯示器
輸出信息 130
5.5 習(xí)題與鞏固 136
第6章 STM32單片機(jī)的中斷系統(tǒng) 138
6.1 中斷相關(guān)的概念 139
6.1.1 什么是中斷 139
6.1.2 中斷處理過(guò)程 140
6.1.3 什么是中斷源 140
6.1.4 什么是中斷信號(hào) 141
6.1.5 中斷屏蔽的概念 141
6.1.6 中斷優(yōu)先級(jí)及中斷嵌套 142
6.1.7 Cortex-M3內(nèi)核的嵌套
向量中斷控制器 144
6.1.8 STM32的中斷控制
固件庫(kù) 147
6.2 STM32的中斷系統(tǒng) 148
6.2.1 什么是異常 148
6.2.2 STM32的中斷通道 150
6.2.3 固件庫(kù)中中斷向量區(qū)的
定義 154
6.2.4 利用庫(kù)函數(shù)控制NVIC
方法 156
6.3 STM32單片機(jī)的EXTI 157
6.3.1 什么是外部中斷/事件
控制器EXTI 157
6.3.2 EXTI功能結(jié)構(gòu) 158
6.3.3 中斷/事件線的種類 160
6.3.4 STM32固件庫(kù)中EXTI的
初始化結(jié)構(gòu)體 161
6.3.5 STM32固件庫(kù)中EXTI的
相關(guān)函數(shù) 163
6.4 項(xiàng)目實(shí)戰(zhàn):人機(jī)交互之按鍵 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 習(xí)題與鞏固 171
第7章 STM32單片機(jī)的定時(shí)器 175
7.1 定時(shí)器的工作原理 176
7.1.1 定時(shí)器簡(jiǎn)介 176
7.1.2 通用定時(shí)器的時(shí)鐘源 176
7.1.3 通用定時(shí)器的定時(shí)
時(shí)鐘 177
7.1.4 定時(shí)器功能 178
7.1.5 定時(shí)器定時(shí)時(shí)間 179
7.1.6 定時(shí)器的計(jì)數(shù)模式 179
7.2 通用定時(shí)器的相關(guān)寄存器功能
詳解 179
7.2.1 控制寄存器1
(TIMx_CR1) 179
7.2.2 中斷使能寄存器(TIMx_DIER) 181
7.2.3 預(yù)分頻寄存器
(TIMx_PSC) 182
7.2.4 計(jì)數(shù)器(TIMx_CNT) 182
7.2.5 自動(dòng)重裝載寄存器
(TIMx_ARR) 183
7.2.6 狀態(tài)寄存器
(TIMx_SR) 183
7.3 固件庫(kù)中定時(shí)器的相關(guān)內(nèi)容 185
7.3.1 固件庫(kù)中定時(shí)器的
結(jié)構(gòu)體 185
7.3.2 固件庫(kù)中定時(shí)器的
相關(guān)庫(kù)函數(shù) 186
7.3.3 利用固件庫(kù)設(shè)置通用定時(shí)器方法 187
7.3.4 范例11:利用通用定時(shí)器
進(jìn)行精確定時(shí) 189
7.4 PWM原理 191
7.4.1 什么是PWM 191
7.4.2 STM32單片機(jī)如何產(chǎn)生
PWM信號(hào) 192
7.4.3 STM32單片機(jī)PWM信號(hào)
輸出控制 193
7.4.4 PWM信號(hào)的輸出引腳
控制 193
7.5 PWM相關(guān)寄存器的功能
詳解 196
7.5.1 捕獲/比較模式寄存器
(TIMx_CCMR1/2) 196
7.5.2 捕獲/比較使能寄存器
(TIMx_CCER) 198
7.5.3 捕獲/比較寄存器
(TIMx_CCR1~TIMx_CCR4) 199
7.6 固件庫(kù)中PWM的相關(guān)內(nèi)容 199
7.6.1 PWM功能的相關(guān)
結(jié)構(gòu)體 199
7.6.2 PWM功能的相關(guān)庫(kù)
函數(shù) 201
7.6.3 使用固件庫(kù)設(shè)置PWM的
方法 202
7.6.4 范例12:三色彩燈
控制 203
7.7 習(xí)題與鞏固 205
第8章 STM32單片機(jī)的串行通信 207
8.1 串行通信的基本概念 208
8.1.1 數(shù)據(jù)通信方式 208
8.1.2 異步傳輸?shù)淖址?數(shù)據(jù)幀 211
8.1.3 異步通信 213
8.1.4 波特率 213
8.2 RS-232C總線標(biāo)準(zhǔn) 214
8.3 STM32系統(tǒng)的RS-232C傳輸
接口 217
8.3.1 RS-232C的電平轉(zhuǎn)換 218
8.3.2 典型的RS-232C接口
電路 219
8.4 不同單片機(jī)之間的串行總線
連接 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結(jié)構(gòu) 223
8.6 STM32串行端口的使用方法 225
8.6.1 STM32的UART時(shí)鐘
控制 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的數(shù)據(jù)
讀寫 237
8.7 STM32的UART中斷使用 239
8.7.1 STM32的UART的收發(fā)
中斷控制 239
8.7.2 STM32的UART中斷
使用方法 240
8.8 添加printf功能 243
8.9 主從機(jī)通信 244
8.9.1 范例13:查詢法 244
8.9.2 范例14:中斷法 247
8.10 習(xí)題與鞏固 249
第9章 STM32單片機(jī)的模數(shù)轉(zhuǎn)換器 251
9.1 輸入信號(hào)分類形式 252
9.1.1 模擬信號(hào)和數(shù)字信號(hào) 252
9.1.2 電壓信號(hào)和電流信號(hào) 252
9.1.3 單次信號(hào)和連續(xù)信號(hào) 253
9.2 模數(shù)轉(zhuǎn)換的原理 253
9.3 模數(shù)轉(zhuǎn)換器的工作過(guò)程 253
9.4 模數(shù)轉(zhuǎn)換器的相關(guān)概念 254
9.4.1 基準(zhǔn)源 254
9.4.2 模數(shù)轉(zhuǎn)換器的分類 254
9.4.3 模數(shù)轉(zhuǎn)換器的主要技術(shù)
指標(biāo) 255
9.5 STM32的模數(shù)轉(zhuǎn)換器 256
9.5.1 STM32的模數(shù)轉(zhuǎn)換器
特性 256
9.5.2 STM32的模數(shù)轉(zhuǎn)換器
功能剖析 257
9.6 STM32的ADC相關(guān)寄存器功能
詳解 262
9.6.1 ADC控制寄存器1
(ADC_CR1) 262
9.6.2 ADC控制寄存器2
(ADC_CR2) 265
9.6.3 ADC采樣時(shí)間寄存器1
(ADC_SMPR1) 267
9.6.4 ADC采樣時(shí)間寄存器2
(ADC_SMPR2) 268
9.6.5 ADC注入數(shù)據(jù)寄存器x
(ADC_JDRx) 268
9.6.6 ADC規(guī)則數(shù)據(jù)寄存器(ADC_DR) 269
9.6.7 ADC狀態(tài)寄存器
(ADC_SR) 270
9.7 STM32的ADC轉(zhuǎn)換模式 271
9.7.1 單次轉(zhuǎn)換模式 271
9.7.2 連續(xù)轉(zhuǎn)換模式 271
9.8 固件庫(kù)中的ADC結(jié)構(gòu)體及
庫(kù)函數(shù) 272
9.8.1 ADC初始化結(jié)構(gòu)體 272
9.8.2 ADC相應(yīng)庫(kù)函數(shù) 274
9.9 ADC應(yīng)用設(shè)計(jì)深入討論 281
9.9.1 工作電壓的穩(wěn)定性 282
9.9.2 參考電壓的確定 282
9.9.3 采樣時(shí)鐘的選擇 282
9.9.4 模擬噪聲的抑制 282
9.9.5 校準(zhǔn) 283
9.9.6 ADC開(kāi)關(guān)控制 283
9.10 數(shù)字電位器 284
9.10.1 范例15:電位器
原理圖 284
9.10.2 范例16:讀取模數(shù)轉(zhuǎn)換器
通道電壓—查詢法 284
9.10.3 范例17:讀取模數(shù)轉(zhuǎn)換器
通道電壓—中斷法 287
9.11 習(xí)題與鞏固 291
第 10章 綜合項(xiàng)目之溫度控制系統(tǒng) 293
10.1 單片機(jī)系統(tǒng)的程序結(jié)構(gòu) 294
10.1.1 任務(wù)的劃分 294
10.1.2 程序?qū)崟r(shí)性 296
10.1.3 前后臺(tái)程序結(jié)構(gòu)的優(yōu)點(diǎn)與
缺點(diǎn) 297
10.1.4 改進(jìn)前后臺(tái)程序的
方法 298
10.1.5 范例18:緩沖區(qū)(FIFO)
應(yīng)用實(shí)例 302
10.2 利用狀態(tài)機(jī)改進(jìn)單片機(jī)系統(tǒng) 317
10.2.1 初步認(rèn)識(shí)狀態(tài)機(jī) 317
10.2.2 狀態(tài)機(jī)描述方法 322
10.2.3 通過(guò)狀態(tài)轉(zhuǎn)移圖生成
代碼 325
10.2.4 范例19:狀態(tài)機(jī)項(xiàng)目 328
10.3 溫度傳感器 349
10.4 習(xí)題與鞏固 352