包郵 跟工程師學(xué)嵌入式開發(fā)-基于STM32和μCOS-III
-
>
全國計算機等級考試最新真考題庫模擬考場及詳解·二級MSOffice高級應(yīng)用
-
>
決戰(zhàn)行測5000題(言語理解與表達)
-
>
軟件性能測試.分析與調(diào)優(yōu)實踐之路
-
>
第一行代碼Android
-
>
JAVA持續(xù)交付
-
>
EXCEL最強教科書(完全版)(全彩印刷)
-
>
深度學(xué)習(xí)
跟工程師學(xué)嵌入式開發(fā)-基于STM32和μCOS-III 版權(quán)信息
- ISBN:9787121327254
- 條形碼:9787121327254 ; 978-7-121-32725-4
- 裝幀:一般膠版紙
- 冊數(shù):暫無
- 重量:暫無
- 所屬分類:>>
跟工程師學(xué)嵌入式開發(fā)-基于STM32和μCOS-III 本書特色
本書選用的STM32芯片基于ARM Cortex-M3體系結(jié)構(gòu),根據(jù)基于MCU的嵌入式技術(shù)實際應(yīng)用需求,合理地選擇了多種常用的重要外設(shè)接口,如USART、SPI、I2C、FSCM、SDIO總線、以太網(wǎng)等,結(jié)合豐富的實例及工程源代碼,由淺入深、系統(tǒng)全面地介紹嵌入式系統(tǒng)的底層工作原理。在此過程中,通過穿插多個綜合示例的講解,如命令行外殼程序Shell、eFat文件系統(tǒng)、Telnet遠程控制、?C/OS-III實時操作系統(tǒng)的移植過程,無論是嵌入式的初學(xué)者,還是有一定開發(fā)經(jīng)驗的工程師都能從中獲益,使讀者既能系統(tǒng)全面地掌握嵌入式開發(fā)所需的軟硬件知識,又能鍛煉他們的綜合開發(fā)能力,為將來從事嵌入式開發(fā)方面的工作奠定堅實的基礎(chǔ)。
跟工程師學(xué)嵌入式開發(fā)-基于STM32和μCOS-III 內(nèi)容簡介
本書選用的STM32芯片基于ARM Cortex-M3體系結(jié)構(gòu),根據(jù)基于MCU的嵌入式技術(shù)實際應(yīng)用需求,合理地選擇了多種常用的重要外設(shè)接口,如USART、SPI、I2C、FSCM、SDIO總線、以太網(wǎng)等,結(jié)合豐富的實例及工程源代碼,由淺入深、系統(tǒng)全面地介紹嵌入式系統(tǒng)的底層工作原理。在此過程中,通過穿插多個綜合示例的講解,如命令行外殼程序Shell、eFat文件系統(tǒng)、Telnet遠程控制、?C/OS-III實時操作系統(tǒng)的移植過程,無論是嵌入式的初學(xué)者,還是有一定開發(fā)經(jīng)驗的工程師都能從中獲益,使讀者既能系統(tǒng)全面地掌握嵌入式開發(fā)所需的軟硬件知識,又能鍛煉他們的綜合開發(fā)能力,為將來從事嵌入式開發(fā)方面的工作奠定堅實的基礎(chǔ)。
跟工程師學(xué)嵌入式開發(fā)-基于STM32和μCOS-III 目錄
1.1 學(xué)習(xí)啟航:閃爍的跑馬燈 1
1.1.1 實驗結(jié)果呈現(xiàn) 1
1.1.2 實驗分析 2
1.1.3 配置GPIO引腳 5
1.1.4 實驗控制邏輯 6
1.2 STM32庫結(jié)構(gòu)和CMSIS標(biāo)準(zhǔn) 8
1.2.1 STM32庫層次結(jié)構(gòu) 9
1.2.2 CMSIS層次結(jié)構(gòu) 9
1.2.3 STM32庫結(jié)構(gòu)中的文件關(guān)系 10
1.2.4 STM32庫函數(shù)命名規(guī)則 13
1.2.5 STM32庫常見的幾個狀態(tài)類型 13
1.3 工程開發(fā)環(huán)境設(shè)置 14
1.3.1 有關(guān)MDK 14
1.3.2 使用MDK建立工程的步驟 15
第2章 STM32體系結(jié)構(gòu) 25
2.1 總線與通信接口 25
2.1.1 總線組成 25
2.1.2 重要的總線術(shù)語 26
2.2 STM32功能框架 27
2.2.1 系統(tǒng)組成 27
2.2.2 總線單元及掛接設(shè)備 28
2.3 STM32存儲器映射 29
2.3.1 獨立編址 30
2.3.2 統(tǒng)一編址(存儲器映像編址) 31
2.3.3 CM3外設(shè)地址空間映射 32
2.3.4 地址空間映射詳解 34
2.4 STM32時鐘結(jié)構(gòu) 39
2.4.1 STM32F103ZET6的時鐘樹 39
2.4.2 時鐘樹二級框架 40
2.4.3 時鐘啟用過程 41
2.5 系統(tǒng)時鐘樹與地址空間映射的關(guān)系 43
第3章 STM32系統(tǒng)啟動過程分析 44
3.1 CM3的復(fù)位序列 44
3.1.1 堆棧 45
3.1.2 向量表 47
3.2 STM32啟動代碼分析 49
3.3 STM32系統(tǒng)時鐘初始化 52
3.3.1 時鐘源的選擇 52
3.3.2 系統(tǒng)時鐘設(shè)置 56
3.4 程序運行環(huán)境初始化函數(shù)__main() 60
3.4.1 回顧編譯和鏈接過程 60
3.4.2 映像文件的組成 61
3.4.3 映像的加載過程 63
3.4.4 由MDK集成環(huán)境自動生成的分散加載文件 65
3.4.5 _main()函數(shù)的作用 66
第4章 通用GPIO操作 68
4.1 實驗結(jié)果預(yù)覽:LED跑馬燈 68
4.2 GPIO基本知識 68
4.2.1 GPIO分組管理及其引腳 69
4.2.2 GPIO工作模式及其配置 69
4.2.3 GPIO引腳的寫入和讀出 71
4.3 實驗代碼解析 74
4.3.1 實驗現(xiàn)象原理分析 74
4.3.2 源代碼分析 78
4.4 創(chuàng)建工程 81
4.4.1 建立工程目錄結(jié)構(gòu) 81
4.4.2 導(dǎo)入源代碼文件 81
4.4.3 編譯執(zhí)行 82
4.5 編譯調(diào)試 82
4.5.1 調(diào)試方法 82
4.5.2 棧和變量觀察窗口 83
4.5.3 運行程序并調(diào)試:一個函數(shù)一個斷點 84
4.5.4 運行程序并調(diào)試:多個函數(shù)多個斷點 86
第5章 外部中斷EXTI操作 90
5.1 實驗結(jié)果預(yù)覽:LED跑馬燈_中斷控制 90
5.2 異常與中斷 91
5.2.1 Cortex-M3的異常向量 91
5.2.2 異常向量表 92
5.3 NVIC與中斷控制 93
5.3.1 NVIC簡述 93
5.3.2 NVIC與外部中斷 93
5.3.3 NVIC中斷的優(yōu)先級 94
5.3.4 NVIC初始化 95
5.4 EXTI基本知識 97
5.4.1 EXTI簡介 97
5.4.2 EXTI控制器組成結(jié)構(gòu) 97
5.4.3 GPIO引腳到EXTI_Line的映射 100
5.4.4 EXTI_Line到NVIC的映射 102
5.5 實驗代碼解析 103
5.5.1 工程源碼的邏輯結(jié)構(gòu) 103
5.5.2 實驗代碼軟硬件原理 104
5.5.3 實驗代碼分析 107
5.6 創(chuàng)建工程 109
5.6.1 建立工程目錄結(jié)構(gòu) 109
5.6.2 導(dǎo)入源代碼文件 109
5.6.3 編譯執(zhí)行 110
5.7 編譯調(diào)試 111
5.7.1 打開內(nèi)存窗口 111
5.7.2 設(shè)置斷點 111
5.7.3 運行程序并調(diào)試 112
第6章 USART接口 115
6.1 實驗結(jié)果預(yù)覽 115
6.1.1 實驗準(zhǔn)備工作 115
6.1.2 實驗現(xiàn)象描述 116
6.2 USART基本知識 117
6.2.1 串行異步通信協(xié)議 117
6.2.2 USART與接口標(biāo)準(zhǔn)RS-232 118
6.3 STM32 USART結(jié)構(gòu) 119
6.3.1 USART工作模式 119
6.3.2 精簡的USART結(jié)構(gòu) 119
6.3.3 USART單字節(jié)收發(fā)過程 120
6.4 USART寄存器位功能定義 121
6.4.1 狀態(tài)寄存器(USART_SR) 121
6.4.2 數(shù)據(jù)寄存器(USART_DR) 122
6.4.3 控制寄存器1(USART_CR1) 122
6.4.4 控制寄存器2(USART_CR2) 123
6.4.5 控制寄存器3(USART_CR3) 123
6.4.6 分?jǐn)?shù)波特率寄存器USART_BRR 124
6.4.7 USART模塊寄存器組 125
6.4.8 USART模塊初始化函數(shù) 126
6.4.9 USART常用函數(shù)功能說明 127
6.5 USART實驗代碼分析 128
6.5.1 實驗電路(硬件連接關(guān)系) 128
6.5.2 工程源代碼文件層次結(jié)構(gòu) 130
6.5.3 應(yīng)用層(主程序控制邏輯) 131
6.5.4 用戶驅(qū)動層 133
6.5.5 函數(shù)printf()重定向 135
6.6 創(chuàng)建工程 135
6.6.1 建立工程目錄結(jié)構(gòu) 135
6.6.2 創(chuàng)建文件組和導(dǎo)入源文件 136
6.6.3 編譯執(zhí)行 137
第7章 USART綜合應(yīng)用:命令行外殼程序Shell 138
7.1 實驗結(jié)果預(yù)覽 138
7.2 基于USART的I/O函數(shù) 139
7.2.1 字符及字符串獲取函數(shù):xgetc()和xgets() 139
7.2.2 字符及字符串打印函數(shù):xputc()和xputs() 141
7.3 可變參數(shù)輸出函數(shù)xprintf() 142
7.3.1 可變參數(shù) 142
7.3.2 可變參數(shù)宏的使用與作用 143
7.3.3 用可變參數(shù)宏實現(xiàn)自己的格式化輸出函數(shù)xprintf() 144
7.4 Shell外殼 145
7.4.1 Shell命令管理結(jié)構(gòu) 146
7.4.2 Shell命令解析過程 147
7.4.3 命令函數(shù)之參數(shù)解析 150
7.5 建立工程,編譯和運行 151
7.5.1 創(chuàng)建和配置工程 151
7.5.2 編譯執(zhí)行 153
第8章 I2C接口 154
8.1 實驗結(jié)果預(yù)覽:輪詢寫入/讀出EEPROM數(shù)據(jù) 154
8.2 I2C總線協(xié)議 155
8.2.1 總線特點 155
8.2.2 I2C應(yīng)用結(jié)構(gòu) 155
8.2.3 總線信號時序分析 156
8.3 STM32 I2C模塊 158
8.3.1 I2C組成框圖 158
8.3.2 I2C主模式工作流程 159
8.3.3 I2C中斷及DMA請求 161
8.4 I2C EEPROM讀寫示例及分析 162
8.4.1 示例電路連接 162
8.4.2 app.c文件中的main()函數(shù) 163
8.4.3 eeprom.h文件 166
8.4.4 eeprom.c文件 167
8.4.5 shell.c文件 174
8.5 建立工程,編譯及運行 175
8.5.1 創(chuàng)建和配置工程 175
8.5.2 編譯執(zhí)行 176
第9章 DMA接口 177
9.1 實驗結(jié)果預(yù)覽 177
9.2 通用DMA的作用及特征 178
9.3 STM32 DMA基本知識 178
9.3.1 DMA與系統(tǒng)其他模塊關(guān)系圖 178
9.3.2 STM32 DMA組成 179
9.4 實驗示例分析 183
9.4.1 main.c文件中的main()函數(shù) 184
9.4.2 USART1的初始化 184
9.4.3 DMA通道中斷處理函數(shù) 189
9.4.4 sysTick中斷處理函數(shù) 190
9.4.5 DMA通道配置的其他寄存器 191
9.4.6 DMA用戶測試命令及其執(zhí)行函數(shù) 192
9.5 建立工程,編譯和執(zhí)行 193
9.5.1 建立以下工程文件夾 194
9.5.2 創(chuàng)建文件組和導(dǎo)入源文件 194
9.5.3 編譯運行 194
第10章 實時時鐘RTC 195
10.1 實驗結(jié)果預(yù)覽 195
10.2 STM32 RTC模塊 196
10.2.1 STM32后備供電區(qū)域 196
10.2.2 RTC組成 199
10.3 RTC實驗設(shè)計與源碼分析 204
10.3.1 硬件連接和GPIO資源 204
10.3.2 實驗源代碼邏輯結(jié)構(gòu) 204
10.3.3 源代碼分析 205
10.4 建立工程,編譯和執(zhí)行 212
10.4.1 建立以下工程文件夾 212
10.4.2 創(chuàng)建文件組和導(dǎo)入源文件 212
10.4.3 編譯執(zhí)行 213
第11章 系統(tǒng)定時器SysTick 214
11.1 SysTick簡述 214
11.2 SysTick工作過程 214
11.3 SysTick寄存器位功能定義 215
11.3.1 控制和狀態(tài)寄存器:STK_CTRL 215
11.3.2 重載寄存器:STK_LOAD 216
11.3.3 當(dāng)前計數(shù)值寄存器:STK_VAL 217
11.3.4 校正寄存器:STK_CALIB 217
11.3.5 SysTick模塊寄存器組 217
11.3.6 配置SysTick定時器 218
11.4 基于SysTick的延時函數(shù)代碼分析 220
11.4.1 實現(xiàn)原理 220
11.4.2 實現(xiàn)代碼分析 220
11.4.3 基于SysTick延時的LED閃爍命令 223
11.5 建立工程,編譯和執(zhí)行 224
11.5.1 建立以下工程文件夾 224
11.5.2 創(chuàng)建文件組和導(dǎo)入源文件 224
11.5.3 編譯運行 226
第12章 SPI接口 227
12.1 實驗現(xiàn)象預(yù)覽:輪詢寫入/讀出SPI Flash數(shù)據(jù) 227
12.2 SPI總線協(xié)議 228
12.2.1 總線信號及其應(yīng)用結(jié)構(gòu) 228
12.2.2 SPI內(nèi)部結(jié)構(gòu)與工作原理 229
12.3 STM32 SPI模塊 231
12.3.1 SPI組成框圖 231
12.3.2 STM32 SPI主模式數(shù)據(jù)收發(fā)過程 232
12.3.3 SPI中斷及DMA請求 234
12.4 W25Q128FV規(guī)格說明 234
12.4.1 W25Q128FV狀態(tài)和控制管理 235
12.4.2 W25Q128FV常用指令 236
12.5 程序入口與SPI初始化代碼 237
12.5.1 實驗硬件資源 237
12.5.2 工程入口文件main.c 238
12.5.3 spiflash.c文件中的spiFlash_Init()函數(shù) 239
12.6 SPI Flash測試代碼分析 243
12.6.1 spiflash.c文件中的SPI Flash測試函數(shù)spiTest() 244
12.6.2 SPI Flash ID讀取函數(shù)sFLASH_readID() 245
12.6.3 扇區(qū)擦除函數(shù)sFLASH_eraseSector() 246
12.6.4 Flash頁寫函數(shù)sFLASH_writePage() 246
12.6.5 Flash讀函數(shù)sFLASH_readBuffer() 247
12.6.6 Flash字節(jié)發(fā)送函數(shù)sFLASH_SendByte() 248
12.7 向Shell添加SPI測試指令spitest 249
12.8 建立工程,編譯和執(zhí)行 250
12.8.1 建立以下工程文件夾 250
12.8.2 創(chuàng)建文件組和導(dǎo)入源文件 250
12.8.3 編譯運行 252
第13章 網(wǎng)絡(luò)接口:以太網(wǎng) 253
13.1 網(wǎng)絡(luò)體系結(jié)構(gòu)簡介 253
13.1.1 三種網(wǎng)絡(luò)模型 253
13.1.2 以太網(wǎng)標(biāo)準(zhǔn)(Ethernet) 256
13.2 ENC28J60知識 257
13.2.1 ENC28J60概述 257
13.2.2 控制寄存器 259
13.2.3 以太網(wǎng)緩沖器 260
13.2.4 PHY寄存器 261
13.2.5 ENC28J60 SPI指令集 261
13.2.6 ENC28J60初始化 263
13.2.7 使用ENC28J60收發(fā)數(shù)據(jù) 268
13.2.8 ENC28J60驅(qū)動代碼總結(jié) 272
13.3 uIP協(xié)議棧簡介 274
13.3.1 uIP特性 274
13.3.2 uIP應(yīng)用接口 275
13.3.3 uIP的初始化及配置函數(shù) 277
13.3.4 uIP的主程序循環(huán) 277
13.4 uIP移植分析 279
13.4.1 下載uIP1.0版源碼文件 279
跟工程師學(xué)嵌入式開發(fā)-基于STM32和μCOS-III 作者簡介
譚貴,男,北京大學(xué)計算機科學(xué)與技術(shù)學(xué)士畢業(yè),現(xiàn)供職于富士康科技集團,熱愛嵌入式開發(fā)技術(shù),精通C、Java語言,Tcl和bash腳本應(yīng)用;熟悉從MCU裸板外設(shè)驅(qū)動開發(fā)和uCosII實時操作系統(tǒng)的移植,以及基于Linux系統(tǒng)的嵌入式應(yīng)用開發(fā)。
- >
我從未如此眷戀人間
- >
煙與鏡
- >
隨園食單
- >
唐代進士錄
- >
羅曼·羅蘭讀書隨筆-精裝
- >
中國歷史的瞬間
- >
伯納黛特,你要去哪(2021新版)
- >
名家?guī)阕x魯迅:故事新編