項目一LED控制設計與實現1
1.1任務1 新建一個基於STM32固件庫的工程模板1
1.1.1新建基於STM32固件庫的Keil μVision4工程模板1
1.1.2認識STM32固件庫11
1.1.3STM32固件庫關鍵子目錄和文件12
1.2任務2 點亮一個LED15
1.2.1用Proteus設計第 一個STM32的LED控制電路15
1.2.2開發第 一個基於工程模板的Keil μVision4工程23
1.2.3位操作25
1.3認識Arm-STM3226
1.3.1嵌入式繫統26
1.3.2Arm Cortex-M3處理器28
1.3.3STM32繫列處理器29
1.4任務3 LED閃爍控制31
1.4.1LED閃爍控制設計與實現31
1.4.2extern 變量聲明32
1.4.3Keil μVision4文本美化33
【技能訓練1-1】音頻產生器35
關鍵知識點小結36
問題與討論38
項目二跑馬燈控制設計與實現39
2.1任務4 LED循環點亮控制39
2.1.1認識STM32的I/O口39
2.1.2STM32的GPIO初始化和輸入輸出庫函數45
2.1.3LED循環點亮控制設計47
【技能訓練2-1】GPIO_SetBits()和GPIO_ResetBits ()函數應用49
2.2Cortex-M3的編程模式50
2.2.1Cortex-M3工作模式及狀態50
2.2.2Cortex-M3寄存器組51
2.2.3Cortex-M3特殊功能寄存器組54
2.3任務5 跑馬燈設計與實現56
2.3.1跑馬燈電路設計56
2.3.2跑馬燈程序設計、運行與調試57
2.3.3C語言中的預處理59
2.3.4結構體61
【技能訓練2-2】結構體應用——GPIO端口初始化62
2.4STM32結構63
2.4.1Cortex-M3處理器結構63
2.4.2STM32繫統結構65
2.4.3STM32時鐘配置67
【技能訓練2-3】基於寄存器的跑馬燈設計72
關鍵知識點小結73
問題與討論75
項目三數碼管顯示設計與實現76
3.1任務6 數碼管靜態顯示設計與實現76
3.1.1認識數碼管76
3.1.2數碼管靜態顯示電路設計78
3.1.3數碼管靜態顯示程序設計79
【技能訓練3-1】共陽極LED數碼管應用81
3.2STM32存儲器映射83
3.2.1認識Cortex-M3存儲器83
3.2.2Cortex-M3存儲器映射84
3.2.3STM32存儲器映射86
【技能訓練3-2】編寫外部設備文件89
3.3任務7 數碼管動態掃描顯示設計與實現91
3.3.1數碼管動態掃描顯示電路設計92
3.3.2數碼管動態掃描顯示程序設計、運行與調試92
3.3.3Keil μVision4代碼編輯94
3.4I/O口的位操作與實現99
3.4.1位帶區與位帶別名區99
3.4.2位帶操作100
3.4.3I/O口位帶操作的宏定義102
3.4.4I/O口的位操作實現105
【技能訓練3-3】I/O口的位操作應用106
關鍵知識點小結107
問題與討論108
項目四按鍵控制設計與實現109
4.1任務8 按鍵控制LED設計與實現109
4.1.1認識嵌入式應用技術與開發的核心板109
4.1.2按鍵控制LED電路設計110
4.1.3按鍵控制LED程序設計113
4.1.4按鍵控制LED運行與調試118
【技能訓練4-1】一鍵多功能按鍵識別設計與實現120
4.2GPIO和AFIO寄存器地址映射122
4.2.1GPIO寄存器地址映射122
4.2.2端口復用使用125
4.2.3端口復用重映射126
【技能訓練4-2】串口1(USART1)重映射實現129
4.3任務9 中斷方式的按鍵控制設計與實現130
4.3.1STM32中斷130
4.3.2STM32外部中斷編程134
4.3.3中斷方式的按鍵控制程序設計137
4.3.4中斷方式的按鍵控制工程搭建、編譯與調試141
【技能訓練4-3】中斷方式的聲光報警器141
關鍵知識點小結144
問題與討論145
項目五定時器應用設計與實現146
5.1任務10 基於SysTick定時器的1秒延時設計與實現146
5.1.1SysTick定時器146
5.1.2庫函數中的SysTick相關函數149
5.1.3SysTick的關鍵函數編寫151
5.1.4基於SysTick定時器的1秒延時設計與實現153
5.2任務11 STM32定時器的定時設計與實現156
5.2.1認識STM32定時器156
5.2.2STM32定時器與定時相關的寄存器157
5.2.3STM32定時器相關的庫函數162
5.2.4STM32定時器的定時設計165
【技能訓練5-1】基於寄存器的STM32定時器定時設計與實現167
5.3任務12 PWM輸出控制電機169
5.3.1STM32的PWM輸出相關寄存器169
5.3.2STM32的PWM輸出編程思路172
5.3.3STM32的PWM輸出相關庫函數174
5.3.4PWM輸出控制電機設計177
【技能訓練5-2】基於寄存器的PWM輸出控制電機設計與實現180
關鍵知識點小結181
問題與討論183
項目六串行通信設計與實現184
6.1STM32的串行通信184
6.1.1串行通信基本知識184
6.1.2認識STM32的USART串口186
6.1.3STM32串口的相關寄存器187
6.2任務13 USART串口通信設計190
6.2.1STM32串口的相關函數190
6.2.2STM32的USART1串口通信設計194
6.2.3STM32串行通信設計與調試198
【技能訓練6-1】基於寄存器的STM32串行通信設計198
6.3任務14 STM32串口無線傳輸設計與實現202
6.3.1基於Wi-Fi的STM32串口無線傳輸電路設計202
6.3.2基於ZigBee的STM32串口無線傳輸電路設計204
6.3.3嵌入式智能車通信協議205
6.3.4基於寄存器的STM32串口無線傳輸程序設計207
關鍵知識點小結214
問題與討論215
項目七模數轉換設計與實現216
7.1STM32的模數轉換216
7.1.1STM32的模數轉換簡介216
7.1.2ADC相關的寄存器218
7.2任務15 基於寄存器的STM32模數轉換設計223
7.2.1STM32的ADC設置223
7.2.2基於寄存器的STM32模數轉換設計225
7.2.3基於寄存器的STM32模數轉換運行與調試233
7.3任務16 基於庫函數的STM32模數轉換設計234
7.3.1ADC相關的庫函數234
7.3.2基於庫函數的STM32模數轉換程序設計235
7.3.3基於庫函數的STM32模數轉換運行與調試236
關鍵知識點小結237
問題與討論238
項目八嵌入式智能車設計與實現239
8.1嵌入式智能車239
8.1.1認識嵌入式智能車239
8.1.2嵌入式智能車任務板241
8.1.3嵌入式智能車循跡板246
8.2任務17 嵌入式智能車巡航控制設計248
8.2.1嵌入式智能車電機驅動電路249
8.2.2電機正反轉和速度控制程序設計252
8.2.3嵌入式智能車停止、前進和後退程序設計256
8.2.4嵌入式智能車循跡、左轉和右轉程序設計260
【技能訓練8-1】嵌入式智能車巡航控制268
8.3任務18 嵌入式智能車標志物控制設計270
8.3.1道閘標志物控制設計270
8.3.2LED顯示標志物控制設計271
8.3.3基於紅外線的標志物控制設計274
8.3.4智能路燈控制設計278
8.3.5超聲波測距設計285
8.3.6雙色燈控制程序設計288
【技能訓練8-2】嵌入式智能車標志物控制289
8.4任務19 嵌入式智能車綜合控制設計292
8.4.1語音播報標志物控制設計293
8.4.2嵌入式智能車控制運輸車標志物設計296
8.4.3編寫嵌入式智能車的任務文件297
8.4.4編寫嵌入式智能車的主文件303
8.4.5嵌入式智能車綜合控制工程搭建、編譯、運行與調試306
8.4.6嵌入式智能車綜合控制設計經驗和技巧307
關鍵知識點小結308
問題與討論309
參考文獻310