本書介紹單片機應用的基本知識,提高讀者單片機系統(tǒng)的設計與調試能力。通過LED燈設計、中斷實驗設計、串口通信設計、定時器中斷與輸出設計、總線通信設計等具體應用,介紹單片機端口與數(shù)據(jù)之間的關系,程序和電路的工作過程,程序的編輯、編譯、下載、調試方法,以及中斷、定時/計數(shù)器、串行通信等內部資源的應用設計方法。
翟臨博,男,博士,副教授。本科、研究生畢業(yè)于山東大學信息科學與工程學院,博士畢業(yè)于北京郵電大學電子工程學院。學術任職:IEICE會員,中國計算機學會會員。教研及科研獲獎:山東省省級教學成果獎(一等獎):通信工程專業(yè)"全方位培養(yǎng),差異化成才”教學模式改革與實踐,第4位。教材出版情況:《微機原理》,濟南出版社,2012年;《單片機原理及應用》,北京航空航天大學出版社,2015年;《信息技術綜合實踐》,2017年。
目 錄
實驗1 STM32-GPIO應用實驗01 1
1.1 實驗要求 1
1.2 實驗器材 1
1.3 實驗內容 1
1.4 實驗目的 1
1.5 實驗原理 1
1.5.1 硬件連接 1
1.5.2 GPIO功能概述 3
1.6 實驗步驟 5
1.6.1 添加公共代碼到工程 5
1.6.2 編寫代碼 7
1.6.3 編譯代碼 10
1.6.4 下載驗證 11
1.7 拓展提高 19
實驗2 STM32-GPIO應用實驗02 20
2.1 實驗要求 20
2.2 實驗器材 20
2.3 實驗內容 21
2.4 實驗目的 21
2.5 實驗原理 21
2.5.1 硬件連接 21
2.5.2 程序流程圖 23
2.5.3 程序中的幾個關鍵函數(shù) 23
2.6 實驗步驟 26
2.6.1 編寫按鍵代碼 26
2.6.2 編寫/修改LED燈代碼 29
2.6.3 編寫main函數(shù)控制代碼 32
2.6.4 編譯代碼并下載驗證 33
2.7 拓展提高 33
實驗3 STM32外部中斷實驗 35
3.1 實驗要求 35
3.2 實驗器材 35
3.3 實驗內容 36
3.4 實驗目的 36
3.5 實驗原理 36
3.5.1 STM32的中斷和異常 36
3.5.2 向量中斷控制器 37
3.5.3 NVIC的優(yōu)先級分組 37
3.5.4 STM32外部中斷簡介 37
3.5.5 使用HAL庫函數(shù)配置外部中斷的步驟 39
3.6 實驗步驟 39
3.6.1 修改中斷優(yōu)先級分組 39
3.6.2 編寫exti.c和exti.h文件 40
3.6.3 修改key.c中的代碼 41
3.6.4 修改main.c中的代碼 41
3.6.5 編譯代碼并下載驗證 41
3.7 拓展提高 41
實驗4 STM32串口通信實驗 42
4.1 實驗要求 42
4.2 實驗器材 42
4.3 實驗內容 43
4.4 實驗目的 43
4.5 實驗原理 43
4.5.1 STM32F1串口簡介 43
4.5.2 串口通信相關HAL庫函數(shù) 46
4.6 實驗步驟 51
4.6.1 修改led.c函數(shù),添加LED9的初始化配置 51
4.6.2 編寫usart.c和usart.h文件 52
4.6.3 修改main.c中的代碼 58
4.6.4 編譯代碼并下載驗證 59
4.7 拓展提高 61
實驗5 STM32串口DMA實驗 62
5.1 實驗要求 62
5.2 實驗器材 62
5.3 實驗內容 63
5.4 實驗目的 63
5.5 實驗原理 63
5.5.1 STM32F1 DMA簡介 63
5.5.2 DMA相關的HAL庫函數(shù)及應用 68
5.6 實驗步驟 70
5.6.1 DMA特點及部分函數(shù)解析 71
5.6.2 修改文件usart.c及usart.h中的代碼 72
5.6.3 修改main.c中main函數(shù)代碼 78
5.6.4 編譯代碼并下載驗證 79
5.7 拓展提高 80
實驗6 STM32定時器中斷實驗 81
6.1 實驗要求 81
6.2 實驗器材 81
6.3 實驗內容 81
6.4 實驗目的 81
6.5 實驗原理 81
6.5.1 STM32F1定時器簡介 81
6.5.2 通用定時器 82
6.5.3 通用定時器配置相關的HAL庫函數(shù) 83
6.6 實驗步驟 86
6.6.1 編寫tim.c文件和tim.h文件 86
6.6.2 修改led.c文件中的函數(shù) 88
6.6.3 修改main.c文件 88
6.6.4 編譯代碼并下載驗證 89
6.7 拓展提高 89
實驗7 STM32-PWM輸出實驗 90
7.1 實驗要求 90
7.2 實驗器材 90
7.3 實驗內容 90
7.4 實驗目的 90
7.5 實驗原理 90
7.5.1 PWM簡介 90
7.5.2 PWM設置相關的HAL庫函數(shù) 93
7.6 實驗步驟 95
7.6.1 修改tim.c和tim.h文件 95
7.6.2 修改led.c文件中的函數(shù)LED_Init() 97
7.6.3 修改main.c函數(shù) 97
7.6.4 編譯代碼并下載驗證 98
7.7 拓展提高 98
實驗8 RS-485總線通信應用01 99
8.1 實驗要求 99
8.2 實驗器材 99
8.3 實驗內容 99
8.4 實驗目的 99
8.5 實驗原理 99
8.5.1 總線概述 99
8.5.2 串行通信基本知識 100
8.5.3 Modbus通信協(xié)議 101
8.5.4 系統(tǒng)構成 109
8.6 實驗步驟 109
8.7 拓展提高 110
實驗9 RS-485總線通信應用02 111
9.1 實驗要求 111
9.2 實驗器材 111
9.3 實驗內容 111
9.4 實驗目的 111
9.5 實驗原理 112
9.5.1 RS-485收發(fā)器 112
9.5.2 RS-485網(wǎng)絡1的數(shù)據(jù)幀 113
9.5.3 通過RS-485網(wǎng)絡2上傳信息的數(shù)據(jù)幀 114
9.6 實驗步驟 115
9.6.1 完善從設備代碼 115
9.6.2 完善主設備代碼 119
9.6.3 節(jié)點配置 121
9.6.4 計算機端查看數(shù)據(jù) 122
9.7 拓展提高 123
實驗10 CAN總線通信應用 124
10.1 實驗要求 124
10.2 實驗器材 124
10.3 實驗內容 124
10.4 實驗目的 124
10.5 實驗原理 125
10.5.1 CAN總線概述 125
10.5.2 CAN技術規(guī)范與標準 125
10.5.3 CAN總線的報文信號電平 126
10.5.4 總線拓撲圖 127
10.5.5 CAN通信幀介紹 128
10.6 實驗步驟 133
10.6.1 系統(tǒng)構成 133
10.6.2 系統(tǒng)連線 134
10.7 拓展提高 134