本書主要介紹STM32系列單片機C語言程序設計和應用技術(shù)兩個方面的內(nèi)容。全書共9章,包括單片機綜述、STM32 的內(nèi)部結(jié)構(gòu)及接口特點、通用I/O(輸入/輸出)的端口(GIPO)、STM32單片機的中斷系統(tǒng)及定時器、STM32的A/D和D/A轉(zhuǎn)換模塊、總線通信接口I2C與SPI、STM32 CAN總線設計、STM32硬件和實用程序、STM32實驗平臺操作指南。
本書可作為電氣自動化、工業(yè)自動化、儀器儀表、機電一體化等專業(yè)本科生和研究生的教材,也可作為相關(guān)技術(shù)人員的參考書。
目錄
前言
第1章單片機綜述1
1.1微機發(fā)展史簡介1
1.2微機與單片機1
1.3嵌入式系統(tǒng)2
1.3.1嵌入式系統(tǒng)的定義與特點2
1.3.2嵌入式系統(tǒng)與單片機3
1.4單片機的應用特點6
1.5STM32與51單片機比較有哪些優(yōu)點9
1.6用C語言開發(fā)單片機的優(yōu)勢10
本章小結(jié)11
本章習題11
第2章STM32的內(nèi)部結(jié)構(gòu)及接口
特點12
2.1STM32單片機概述12
2.1.1STM32的主要特性12
2.1.2STM32單片機內(nèi)部結(jié)構(gòu)框圖12
2.1.3STM32引腳功能描述13
2.2STM32的存儲器22
2.2.1存儲器映射23
2.2.2Bit Band功能描述25
2.3STM32的時鐘系統(tǒng)26
2.3.1STM32時鐘源26
2.3.2高速時鐘(HSE、HSI)28
2.3.3低速時鐘(LSE、LSI)28
2.3.4系統(tǒng)時鐘(SYSCLK)29
2.4STM32單片機的復位30
2.5看門狗定時器的功能與操作31
2.5.1獨立看門狗定時器的操作31
2.5.2窗口看門狗定時器的操作33
2.6中斷34
2.6.1STM32中斷的基本概念34
2.6.2外部中斷35
本章小結(jié)37
本章習題37
第3章通用I/O(輸入/輸出)的
接口(GPIO)38
3.1GPIO概述38
3.2STM32的GPIO工作原理38
3.2.1GPIO接口結(jié)構(gòu)38
3.2.2GPIO接口I/O模式39
3.2.3GPIO的工作頻率及主要特征40
3.2.4GPIO復用功能41
3.2.5GPIO鎖定機制41
3.3STM32的GPIO相關(guān)庫函數(shù)41
3.4STM32的GPIO開發(fā)實例47
3.4.1硬件電路設計47
3.4.2軟件設計48
3.4.3仿真與下載50
本章小結(jié)51
本章習題52
第4章STM32單片機的中斷系統(tǒng)
及定時器53
4.1STM32單片機的中斷系統(tǒng)53
4.1.1STM32中斷相關(guān)的概念55
4.1.2STM32嵌套向量中斷控制器
(NVIC)57
4.1.3外部中斷通用I/O映像及外部
中斷的基本使用步驟60
4.2定時器/計數(shù)器64
4.2.1定時器的分類64
4.2.2定時器的寄存器類型68
本章小結(jié)73
本章習題73
第5章STM32的A/D和D/A
轉(zhuǎn)換模塊74
5.1A/D轉(zhuǎn)換模塊74
5.1.1A/D轉(zhuǎn)換器的主要類型74
5.1.2A/D轉(zhuǎn)換器的主要技術(shù)指標74
5.1.3A/D轉(zhuǎn)換器的選型注意事項75
5.2STM32的A/D轉(zhuǎn)換器75
5.2.1A/D轉(zhuǎn)換器的功能描述76
5.2.2A/D寄存器描述78
5.3A/D轉(zhuǎn)換器的輸入電路80
5.4A/D案例分析81
5.4.1A/D常用庫函數(shù)81
5.4.2A/D初始化函數(shù)ADC_Init81
5.4.3主要配置函數(shù)程序82
5.5D/A轉(zhuǎn)換模塊82
5.5.1D/A轉(zhuǎn)換器概述83
5.5.2D/A功能描述84
5.5.3雙D/A通道轉(zhuǎn)換85
5.6D/A寄存器86
5.7脈沖寬度調(diào)制輸出PWM(D/A)
功能特點89
5.8D/A案例程序的主要配置90
STM32系列單片機原理及應用——C語言案例教程目錄5.9數(shù)字濾波方法91
本章小結(jié)93
本章習題94
第6章總線通信接口I2C及SPI95
6.1I2C概述95
6.1.1I2C工作原理及主要特性95
6.1.2I2C內(nèi)部結(jié)構(gòu)96
6.1.3I2C功能描述97
6.1.4I2C從模式100
6.1.5I2C主模式102
6.2I2C通信原理105
6.2.1I2C的物理層105
6.2.2I2C的協(xié)議層106
6.3SPI概述108
6.3.1SPI工作原理及主要特性109
6.3.2SPI功能介紹109
6.3.3SPI工作模式110
6.3.4SPI發(fā)送數(shù)據(jù)和接收數(shù)據(jù)112
6.4SPI通信原理112
6.4.1SPI的物理層113
6.4.2SPI的協(xié)議層114
本章小結(jié)118
本章習題119
第7章STM32 CAN總線設計120
7.1CAN總線概述120
7.2CAN總線的特點及功能121
7.2.1CAN總線的特點121
7.2.2CAN總線的功能121
7.3CAN總線的運行模式及功能描述122
7.3.1CAN總線的運行模式122
7.3.2CAN總線的功能描述123
7.4STM32的bxCAN控制器與
實驗設計127
7.4.1程序設計及初始化配置128
7.4.2實驗程序清單130
7.5基于CAN通信的車載電動機控溫
實驗135
本章小結(jié)136
本章習題137
第8章STM32硬件和實用程序138
8.1常用集成塊及元器件介紹138
8.1.1數(shù)碼管公共端和接法138
8.1.274HC595描述139
8.1.3光電隔離和晶體管陣列等
相關(guān)電路140
8.2STM32 I/O接口與數(shù)碼管顯示144
8.2.1STM32 I/O接口實驗144
8.2.2STM32數(shù)碼管顯示148
8.3STM32的TFTLCD液晶顯示151
8.4STM32溫濕度數(shù)據(jù)采集實驗153
8.4.1DHT11引腳分配及封裝154
8.4.2DHT11傳感器性能154
8.4.3DHT11單總線通信協(xié)議154
8.4.4硬件設計及編程實現(xiàn)155
8.5ATKESP8266 WiFi實驗160
8.5.1ATKESP8266軟硬件設計160
8.5.2AP下載測試驗證164
8.6單片機發(fā)送數(shù)據(jù)到上位機166
8.6.1單片機發(fā)送數(shù)據(jù)到上位機
原理圖166
8.6.2程序編寫步驟167
8.6.3程序下載驗證169
8.7基于STM32的方波發(fā)生器的設計
與檢測169
8.7.1總體設計方案170
8.7.2方波信號發(fā)生器的設計171
8.7.3方波信號檢測的設計172
8.7.4實驗驗證174
8.8基于STM32 TWI的訪問程序在
24Cxx中的應用177
8.8.1TWI與I2C簡介177
8.8.2硬件設計與程序設計177
8.8.3測試與驗證182
8.9STM32單片機在三相晶閘管觸發(fā)
電路中的應用182
8.9.1三相半控橋的工作原理183
8.9.2觸發(fā)延時時間與電壓的關(guān)系183
8.9.3晶閘管觸發(fā)實驗原理圖184
8.9.4晶閘管觸發(fā)實驗程序184
8.9.5實驗仿真結(jié)果與分析192
8.10STM32單片機測量并網(wǎng)前的頻率
及相位角參數(shù)193
8.10.1頻率及相位角測量的電路
原理圖194
8.10.2相位角的測量方法195
8.10.3測量相位角的流程框圖
和程序195
8.11STM32單片機在自動控制液位
中的應用197
8.11.1液位自動控制裝置技術(shù)要求197
8.11.2單片機控制原理圖198
8.11.3液位控制及遠程控制程序199
8.12基于STM32單片機的高精度三相
電能測量系統(tǒng)209
8.12.1ATT7022B 功能簡要說明210
8.12.2ATT7022B的內(nèi)部結(jié)構(gòu)、
封裝及AT45DB161B功能
簡介211
8.12.3STM32單片機和ATT7022B電能
芯片構(gòu)成的高精度三相電能測量
系統(tǒng)211
8.12.4STM32和ATT7022B電能
芯片控制軟件212
8.13基于TEA1622P的通用開關(guān)電源213
本章小結(jié)215
本章習題 216
第9章STM32實驗平臺操作指南217
9.1在MDK5下新建STM32工程217
9.2工程的編譯219
9.3STM32在MDK5下的仿真222
9.3.1仿真配置222
9.3.2串口程序下載223
本章小結(jié)224
本章習題225
參考文獻226