相關主題
商品描述
本書是“十四五”高等職業教育新形態一體化教材之一,以實際應用開發為主線,講解了 基於ARM Cortex-M4為內核的微控制器STM32F407的開發方法。本書采用項目引領、任務驅 動的編寫方式,先從開發環境的搭建開始,讓讀者快速進入開發角色,然後從點亮單燈、GPIO 接口、定時器、NVIC、USART、SPI、I2C、PWM、ADC,再到嵌入式系統移植,由淺入深,使讀者熟悉 ARM微控制器與嵌入式系統的開發流程、STM32F4xx的固件庫,以及各外設的使用方法。
本書適合作為高等職業院校學習ARM微控制器與嵌入式系統的教材,也可作為微控制器 與嵌入式系統愛好者的自學用書,以及嵌入式工程技術人員的培訓用書。
作者簡介
景妮琴,女,碩士,北京電子科技職業學院,副教授,北京市青年骨幹教師;研究方向為嵌入式應用技術、機器學習、深度學習算法。曾榮獲北京市信息化教學大賽二等獎、榮獲北京市教學能力比賽二等獎。指導學生參加全國創新創業大賽榮獲一等獎,指導學生參加全國大學生電子設計大賽榮獲二等獎。
胡亦,男,北京電子科技職業學院副教授,北京市職業院校青年骨幹教師,研究方向嵌入式開發、圖像處理、深度學習算法。曾榮獲北京市信息化教學大賽二等獎、榮獲北京市教學能力比賽二等獎。指導學生參加全國創新創業大賽榮獲一等獎,指導學生參加全國職業院校技能大賽獲一等獎。
吳友蘭 , 女,1978年,碩士北京電子科技職業學院,講師,研究方向為嵌入式應用技術,榮獲北京市教學能力比賽二等獎,指導學生參加全國大學生電子設計大賽榮獲二等獎。
目錄大綱
項目一 開發環境搭建 1
任務一 微控制器選型 1
【任務描述】 1
【相關知識】 2
一、ARM 微控制器發展歷史 2
二、軟件接口標準 CMSIS 2
【任務實施】 3
控制器選型 3
任務二 初識開發板硬件電路 6
【任務描述】 6
【相關知識】 6
STM32 微控制器啟動模式 6
【任務實施】 6
一、了解擴展板硬件電路 6
二、了解核心板電路 8
任務三 搭建開發環境 10
【任務描述】 10
【相關知識】 10
一、MDK-ARM 10
二、JTAG 接口和 SWD 調試接口 10
【任務實施】 11
一、獲取 KEIL5 安裝包 11
二、安裝 KEIL5 11
三、安裝 STM32 芯片包 13
四、安裝調試工具 15
項目總結 16
擴展閱讀:華為麒麟芯片十年
攀登史 16
項目二 庫函數開發初探———從點亮單燈開始 18
任務一 多文件編程 18
【任務描述】 18
【相關知識】 18
一、使用函數提高編程效率 18
二、模塊化編程 20
【任務實施】 21
使用多文件編程求三角形和矩形面積 21
任務二 創建庫函數工程模板 22
【任務描述】 22
【相關知識】 22
一、固件庫文件 22
二、幫助文檔 26
【任務實施】 27
創建庫函數工程模板 27
任務三 點亮單燈 34
【任務描述】 34
【相關知識】 34
一、點亮 LED 燈的開發步驟 34
二、LED 燈的硬件電路 34
三、點亮 LED 燈的軟件設計 35
【任務實施】 35
使用庫函數開發點亮單燈 35
項目總結 39
擴展閱讀:千里之行始於足下 39
項目三 使用 GPIO 接口完成簡單開發任務 40
任務一 使用 GPIO 實現流水燈 40
【任務描述】 40
【相關知識】 40
一、GPIO 工作模式 40
二、STM32F407ZGT6 的時鐘系統 45
三、GPIO 結構體及庫函數 49
【任務實施】 53
通過 GPIOA 實現流水燈 53
任務二 使用 GPIO 完成按鍵控制 55
【任務描述】 55
【相關知識】 55
一、按鍵的硬件電路 55
二、按鍵去抖 56
三、按鍵控制軟件設計 56
【任務實施】 57
一、使用 GPIOC0 控制按鍵 57
二、多個按鍵控制 59
任務三 數碼管動態顯示 60
【任務描述】 60
【相關知識】 60
一、數碼管內部結構 60
二、數碼管的靜態顯示 61
三、數碼管的動態顯示 62
【任務實施】 62
一、在一位數碼管上輪流顯示0 ~ 9 62
二、四位數碼管顯示不同數字 64
項目總結 67
項目拓展 67
擴展閱讀:代碼規範 67
項目四 利用定時器和外部中斷實現電子鐘校準 68
任務一 通過嵌套向量中斷控制器
NVIC 設置中斷參數 69
【任務描述】 69
【相關知識】 69
一、 STM32 的中斷和異常 69
二、嵌套向量中斷控制器 NVIC 70
三、 NVIC 結構體 73
四、 NVIC 的固件庫函數 75
五、中斷編程要點 75
【任務實施】 75
完成基本定時器 TIM6 的 NVIC配置 75
任務二 利用定時器實現電子鐘 76
【任務描述】 76
【相關知識】 77
一、高級定時器、通用定時器、基本定時器 77
二、基本定時器的主要特性 77
三、定時器的結構體 80
四、定時器的庫函數 81
五、使用基本定時器 TIM6定時 1 s 82
【任務實施】 83
一、掌握基本定時器的原理 83
二、定時器定時 1 s 83
三、定時器實現電子鐘 84
任務三 利用外部中斷實現電子鐘的校準 87
【任務描述】 87
【相關知識】 88
一、EXTI 控制器的主要特性 88
二、使用軟件中斷產生外部中斷 89
三、 EXTI 的結構體 90
四、 ETXI 的庫函數 91
【任務實施】 92
一、配置外部中斷線的相關參數 92
二、利用外部中斷實現電子鐘的校準 93
項目總結 98
擴展閱讀:知識產權 98
項目五 通過 USART 收發數據 100
任務一 配置 USART 的參數 101
【任務描述】 101
【相關知識】 101
一、串口通信協議 101
二、USART 主要特性 104
三、USART 功能 104
四、USART 的結構體 109
五、USART 的庫函數 111
【任務實施】 113
配置 USART1 的相關參數 113
任務二 通過 USART 收發數據 114
【任務描述】 114
【相關知識】 114
一、通過 USART 進行數據發送與接收原理 114
二、編程要點 114
【任務實施】 115
通過 USART1 發送、接收數據並控制 LED 燈 115
項目總結 122
擴展閱讀:中國自主 CPU 發展道路———龍芯研制之路 122
項目六 使用 SPI 總線驅動 TFT 屏顯示 123
任務一 設置 SPI 的相關參數 124
【任務描述】 124
【相關知識】 124
一、SPI 協議 124
二、SPI 特性 127
三、SPI 框圖 127
四、 SPI 的結構體 129
五、SPI 的庫函數 132
【任務實施】 133
設置 SPI 的參數,初始化 SPI1 133
任務二 STM32 驅動 TFT-LCD 屏
顯示 133
【任務描述】 133
【相關知識】 133
一、TFT-LCD 屏 133
二、串行接口傳輸寫模式和讀模式 134
三、數據傳輸模式 136
四、顯示數據 RAM 136
五、典型電路接法 136
【任務實施】 137
SPI 總線驅動 TFT-LCD 屏顯示電子鐘 137
項目總結 149
擴展閱讀:工匠精神 149
項目七 利用定時器輸出 PWM波形 151
任務一 配置定時器生成 PWM 的參數 151
【任務描述】 151
【相關知識】 151
一、PWM 簡介 151
二、PWM 的應用 152
三、通用定時器的特性 154
四、通用定時器的功能 155
五、定時器的結構體 166
六、定時器的庫函數 167
【任務實施】 168
配置 PWM 參數 168
任務二 通過定時器生成 PWM波形 168
【任務描述】 168
【相關知識】 168
一、定時器生成 PWM 的編程要點 168
二、定時器通道和輸出端口的參數配置 169
【任務實施】 172
通過定時器生成 PWM 172
項目總結 175
擴展閱讀:精益求精 175
項目八 使用 I2C 獲取 BH1750光強 176
任務一 配置 I2C 參數 176
【任務描述】 176
【相關知識】 177
一、 I2C 協議 177
二、 I2C 的主要特性 180
三、 I2C 功能 181
四、 I2C 的通信過程 184
五、 I2C 的結構體 185
六、 I2C 的庫函數 187
【任務實施】 191
初始化 I2C 結構體 191
任務二 使用 I2C 驅動 BH1750 獲取光強 192
【任務描述】 192
【相關知識】 192
一、 BH1750 環境光強度傳感器集成電路 192
二、 BH1750 結構框圖 193
三、 BH1750 的測量 194
四、 BH1750 的傳輸時序 195
【任務實施】 196
驅動 BH1750 獲取光強 196
項目總結 203
擴展閱讀:柔性 OLED 顯示屏 203
項目九 通過 ADC 采集電壓值 204
任務一 配置 ADC 參數 204
【任務描述】 204
【相關知識】 205
一、如何實現 A/ D 轉換 205
二、STM32 的 ADC 外設 207
三、ADC 的結構體 213
四、ADC 的庫函數 217
【任務實施】 221
配置 ADC 相關參數 221
任務二 通過 ADC 采集電壓值 221
【任務描述】 221
【相關知識】 221
一、硬件連接方式 221
二、獨立模式單通道 ADC 采集編程要點 222
【任務實施】 223
通過 ADC 采集電壓值 223
項目總結 226
擴展閱讀:華為,正在引爆下一輪
科技革命 226
項目十 嵌入式操作系統 μC/ OS-Ⅲ的移植 227
任務一 將 μC / OS-Ⅲ移植到STM32 F407 開發板 227
【任務描述】 227
【相關知識】 227
一、嵌入式操作系統的特點 227
二、常用的嵌入式操作系統 229
三、裸機系統和多任務操作系統的區別 230
【任務實施】 232
μC/ OS-Ⅲ操作系統移植 232
任務二 在 μC / OS-Ⅲ上實現單任務
———LED 燈閃爍 237
【任務描述】 237
【相關知識】 237
一、多任務系統 237
二、定義任務堆棧 237
【任務實施】 237
在 μC/ OS-Ⅲ上實現 LED 燈閃爍 237
項目總結 239
擴展閱讀:華為鴻蒙操作系統 240