基礎篇
第1章LPC178x系列微控制器概述3
1.1CortexM3處理器概述3
1.1.1CortexM3配置選項3
1.1.2LPC178x/177x系列微控制器型號與分類4
1.1.3LPC178x/177x系列微控制器主要特點5
1.1.4LPC178x/177x系列微控制器結構概述7
1.1.5LPC178x/177x系列微控制器記憶體映射9
1.1.6片上記憶體10
1.1.7片上外設及基址10
1.2CMSIS軟體介面標準12
1.2.1CMSIS層與軟體架構13
1.2.2CMSIS檔結構14
第2章開發工具概述22
2.1常用開發工具概覽22
2.1.1RealView MDK開發環境22
2.1.2IAR EWARM開發環境23
2.1.3JLink模擬器24
2.1.4ULINK2模擬器25
2.2LPC1788評估板簡述26
2.2.1開發板概覽26
2.2.2開發板外設介面I/O分配29
2.3RealView MDK開發環境快速入門31
2.3.1工程項目的建立31
2.3.2工程項目的配置33
2.3.3編寫演示代碼35
2.3.4工程項目的編譯36
2.3.5程式下載與調試37
2.4IAR開發環境快速入門40
2.4.1IAR工程項目的快速建立40
2.4.2編譯和鏈結應用程式46
2.4.3仿真調試48
入門篇
第3章GPIO埠應用55
3.1I/O埠配置概述55
3.1.1I/O埠配置描述55
3.1.2I/O埠控制寄存器功能描述58
3.2GPIO埠概述62
3.2.1引腳描述63
3.2.2GPIO寄存器描述63
3.3GPIO及I/O配置常用庫函數72
3.3.1GPIO埠庫函數功能詳解72
3.3.2引腳連接配置庫函數功能詳解82
3.4GPIO埠應用實例88
3.4.1設計目標88
3.4.2硬體電路設計88
3.4.3實例軟體設計89
3.5實例總結96
第4章即時時鐘應用97
4.1即時時鐘(RTC)概述97
4.1.1RTC基本配置98
4.1.2RTC引腳描述99
4.2RTC寄存器描述99
4.2.1RTC中斷100
4.2.2混合寄存器組101
4.2.3完整時間寄存器組103
4.2.4時間計數器組104
4.2.5通用寄存器組106
4.2.6報警寄存器組106
4.3RTC常用庫函數107
4.4RTC應用實例118
4.4.1設計目標118
4.4.2硬體電路設計119
4.4.3實例軟體設計119
4.5實例總結124
第5章計時器應用125
5.1計時器(Timer)概述125
5.1.1計時器的基本配置126
5.1.2計時器的引腳描述127
5.2Timer寄存器描述127
5.2.1中斷寄存器128
5.2.2計時器控制寄存器129
5.2.3計時器/計數器129
5.2.4預分頻寄存器129
5.2.5預分頻計數器129
5.2.6匹配控制寄存器130
5.2.7匹配寄存器0~3131
5.2.8捕獲寄存器0~1131
5.2.9捕獲控制寄存器131
5.2.10外部匹配寄存器132
5.2.11計數控制寄存器132
5.2.12DMA操作133
5.3Timer常用庫函數134
5.4Timer應用實例142
5.4.1設計目標142
5.4.2硬體電路設計142
5.4.3實例軟體設計143
5. 5實例總結151
第6章模/數轉換器應用152
6.1模/數轉換器(ADC)概述152
6.1.1ADC的基本配置153
6.1.2ADC的引腳描述153
6.1.3ADC的操作153
6.2ADC寄存器描述154
6.2.1ADC控制寄存器155
6.2.2ADC全局資料寄存器156
6.2.3ADC中斷使能寄存器157
6.2.4ADC資料寄存器0~7158
6.2.5ADC狀態寄存器159
6.2.6ADC調節寄存器159
6.3ADC常用庫函數160
6.4ADC應用實例165
6.4.1設計目標165
6.4.2硬體電路設計165
6.4.3實例軟體設計166
6. 5實例總結173
第7章數/模轉換器應用174
7.1數/模轉換器(DAC)概述174
7.1.1DAC的基本配置175
7.1.2DAC的引腳描述175
7.1.3DAC的操作175
7.2DAC寄存器描述176
7.2.1D/A轉換器寄存器176
7.2.2D/A轉換器控制寄存器177
7.2.3D/A轉換器計數器值寄存器177
7.3常用庫函數178
7.3.1DAC驅動庫178
7.3.2通用DMA控制器常用庫函數180
7.4DAC應用實例183
7.4.1設計目標183
7.4.2硬體電路設計184
7.4.3實例軟體設計184
7. 5實例總結191
第8章脈寬調製器應用192
8.1脈寬調製器(PWM)概述192
8.1.1脈寬調製器的基本配置194
8.1.2脈寬調製器的引腳描述195
8.1.3單沿和雙沿控制規則的採樣波形195
8.2PWM寄存器描述197
8.2.1PWM中斷寄存器197
8.2.2PWM計時器控制寄存器198
8.2.3PWM計數控制寄存器199
8.2.4PWM計時器/計數器199
8.2.5PWM預分頻寄存器200
8.2.6PWM預分頻計數器寄存器200
8.2.7PWM匹配控制寄存器200
8.2.8PWM匹配寄存器202
8.2.9PWM捕獲控制寄存器202
8.2.10PWM捕獲寄存器203
8.2.11PWM控制寄存器203
8.2.12PWM鎖存使能寄存器204
8.3PWM常用庫函數205
8.4PWM應用實例211
8.4.1設計目標211
8.4.2硬體電路設計211
8.4.3實例軟體設計212
8. 5實例總結219
第9章電機控制脈寬調製器應用220
9.1電機控制脈寬調製器概述220
9.1.1電機控制脈寬調製器的基本配置220
9.1.2電機控制脈寬調製器的引腳描述222
9.2電機控制脈寬調製器寄存器描述222
9.2.1MCPWM控制寄存器223
9.2.2MCPWM捕獲控制寄存器225
9.2.3MCPWM中斷寄存器227
9.2.4MCPWM計數控制寄存器229
9.2.5MCPWM計時器/計數器0~2寄存器231
9.2.6MCPWM界限0~2寄存器231
9.2.7MCPWM匹配0~2寄存器232
9.2.8MCPWM死區時間寄存器233
9.2.9MCPWM通信格式寄存器234
9.2.10MCPWM捕獲寄存器234
9.3MCPWM的應用操作235
9.3.1脈寬調製236
9.3.2映射寄存器和同時更新238
9.3.3快速中止(ABORT)238
9.3.4捕獲事件238
9.3.5外部事件計數(計數器模式)239
9.3.6三相直流模式239
9.3.7三相交流模式240
9.3.8中斷源240
9.4MCPWM常用庫函數241
9.5MCPWM應用實例248
9.5.1設計目標248
9.5.2硬體電路設計248
9.5.3實例軟體設計249
9. 6實例總結255
第10章通用非同步收發器應用256
10.1通用非同步收發器(UART)概述256
10.1.1通用非同步收發器的基本配置260
10.1.2通用非同步收發器的引腳描述261
10.2UART寄存器描述262
10.2.1UARTn接收緩衝寄存器(RBR)263
10.2.2UARTn發送保持寄存器(THR)263
10.2.3UARTn除數鎖存器LSB/MSB寄存器(DLL,DLM)264
10.2.4UARTn中斷使能寄存器(IER)264
10.2.5UARTn中斷標識寄存器(IIR)265
10.2.6UARTn FIFO控制寄存器(FCR)266
10.2.7UARTn線控制寄存器(LCR)267
10.2.8UARTn Modem控制寄存器(MCR)268
10.2.9UARTn線狀態寄存器(LSR)268
10.2.10UARTn Modem狀態寄存器(MSR)270
10.2.11UARTn快取記憶體寄存器(SCR)271
10.2.12UARTn自動串列傳輸速率控制寄存器(ACR)271
10.2.13UARTn分數分頻器寄存器(FDR)271
10.2.14UARTn發送使能寄存器(TER)272
10.2.15UARTn的RS485控制寄存器(RS485CTRL)273
10.2.16UARTn的RS485位址匹配寄存器(RS485ADRMATCH)274
10.2.17UARTn的RS485延時值寄存器(RS485DLY)274
10.2.18UART4過採樣寄存器OSR274
10.2.19UART4智慧卡介面控制寄存器SCICTRL275
10.2.20UART4同步模式控制寄存器(SYNCCTRL)276
10.2.21UART4 IrDA控制寄存器276
10.3UART常用庫函數277
10.4UART應用實例289
10.4.1設計目標289
10.4.2硬體電路設計289
10.4.3實例軟體設計291
10.5實例總結298
第11章串列同步埠控制器應用299
11.1串列同步埠概述299
11.1.1串列同步埠基本配置299
11.1.2串列同步埠的引腳描述300
11.2SSP寄存器描述300
11.2.1SSPn 控制寄存器0(CR0)301
11.2.2SSPn 控制寄存器1(CR1)301
11.2.3SSPn資料寄存器(DR)302
11.2.4SSPn狀態寄存器(SR)302
11.2.5SSPn時鐘預分頻寄存器(CPSR)303
11.2.6SSPn中斷使能置位/清零寄存器(IMSC)303
11.2.7SSPn原始中斷狀態寄存器(RIS)304
11.2.8SSPn 使能中斷狀態寄存器(MIS)304
11.2.9 SSPn中斷清零寄存器(ICR)304
11.2.10SSPn DMA控制寄存器(CMACR)305
11.3SSP常用庫函數305
11.4SSP外設應用實例312
11.4.1設計目標312
11.4.2硬體電路設計312
11.4.3實例軟體設計315
11. 5實例總結318
第12章I2S數位音頻介面應用319
12.1I2S匯流排界面概述319
12.1.1I2S匯流排界面的基本配置321
12.1.2I2S介面的引腳描述321
12.2I2S寄存器描述322
12.2.1數位音頻輸出寄存器(I2SDAO)322
12.2.2數位音頻輸入寄存器(I2SDAI)323
12.2.3發送緩衝寄存器(I2STXFFO)324
12.2.4接收緩衝寄存器(I2SRXFIFO)324
12.2.5狀態回饋寄存器(I2SSTATE)324
12.2.6DMA配置寄存器1(I2SDMAI)324
12.2.7DMA配置寄存器2(I2SDMA2)325
12.2.8中斷請求控制寄存器(I2SIRQ)325
12.2.9發送時鐘速率寄存器(I2STXRATE)326
12.2.10接收時鐘速率寄存器(I2SRXRATE)326
12.2.11發送時鐘位元速率寄存器(I2STXBITRATE)327
12.2.12接收時鐘位元速率寄存器(I2SRXBITRATE)327
12.2.13發送模式控制寄存器(I2STXMODE)327
12.2.14接收模式控制寄存器(I2SRXM0DE)328
12.3I2S常用庫函數328
12.4I2S數位音頻介面播放器應用實例337
12.4.1設計目標337
12.4.2硬體電路設計337
12.4.3實例軟體設計343
12.5實例總結351
第13章SD卡介面應用352
13.1SD卡介面概述352
13.1.1SD卡介面的基本配置353
13.1.2SD卡介面的引腳描述353
13.2SD卡介面寄存器描述353
13.2.1電源控制寄存器(MCOPower)354
13.2.2時鐘控制寄存器(MCIClock)355
13.2.3參數寄存器(MCIArgument)355
13.2.4命令寄存器(MCICommand)356
13.2.5命令回應寄存器(MCIRespCommand)356
13.2.6回應寄存器0~3(MCIResponse0~3)357
13.2.7資料計時器寄存器357
13.2.8資料長度寄存器(MCIDataLength)357
13.2.9資料控制寄存器(MCIDataCtrl)358
13.2.10資料計數器寄存器(MCIDataCnt)358
13.2.11狀態寄存器(MCIStatus)359
13.2.12清零寄存器(MCIClear)360
13.2.13中斷遮罩寄存器(MCIMask)360
13.2.14FIFO計數器寄存器(MCIFifoCnt)361
13.2.15資料FIFO寄存器(MCIFIFO)361
13.3SD卡介面的常用庫函數361
13.4基於SD卡介面的檔系統實例373
13.4.1設計目標373
13.4.2硬體電路設計373
13.4.3實例軟體設計374
13. 5實例總結400
第14章LCD控制器與觸摸應用401
14.1LCD控制器概述401
14.1.1LCD上電與掉電順序403
14.1.2LCD控制器的基本配置404
14.1.3LCD控制器的引腳描述404
14.2LCD控制器寄存器描述404
14.2.1LCD配置和計時控制寄存器(LCD_CFG)405
14.2.2水準時序控制寄存器(LCD_TIMH)405
14.2.3垂直時序控制寄存器(LCD_TIMV)406
14.2.4時鐘與信號極性控制寄存器(LCD_POL)407
14.2.5線端控制寄存器(LCD_LE)408
14.2.6上面板幀基址寄存器(LCD_UPBASE)409
14.2.7下麵板幀基址寄存器(LCD_LPBASE)409
14.2.8LCD控制寄存器(LCD_CTRL)409
14.2.9中斷遮罩寄存器(LCD_INTMSK)411
14.2.10原始中斷遮罩寄存器(LCD_INTRAW)411
14.2.11中斷遮罩狀態寄存器(LCD_INTSTAT)412
14.2.12中斷清零寄存器(LCD_INTCLR)412
14.2.13上面板當前位址寄存器(LCD_UPCURR)413
14.2.14下麵板當前位址寄存器(LCD_LPCURR)413
14.2.15彩色調色板寄存器(LCD_PAL)413
14.2.16游標圖像寄存器(CRSR_IMG)414
14.2.17游標控制寄存器(CRSR_CTRL)414
14.2.18游標配置寄存器(CRSR_CFG)415
14.2.19游標調色板寄存器0(CRSR_PAL0)415
14.2.20游標調色板寄存器1(CRSR_PAL1)416
14.2.21游標XY位置寄存器(CRSR_XY)416
14.2.22游標剪裁位置寄存器416
14.2.23游標中斷遮罩寄存器(CRSR_INTMSK)417
14.2.24游標中斷清零寄存器(CRSR_INTCLR)417
14.2.25游標原始中斷狀態寄存器(CRSR_INTRAW)417
14.2.26游標中斷遮罩狀態寄存器(CRSR_INTSTAT)418
14.3LCD控制器的常用庫函數418
14.4LCD控制器應用實例422
14.4.1設計目標422
14.4.2硬體電路設計422
14.4.3文字顯示實例軟體設計427
14.4.4觸摸屏校準實例軟體設計435
14.5實例總結440
第15章乙太網介面應用441
15.1乙太網介面概述441
15.1.1乙太網模組的內部結構與特性441
15.1.2乙太網資料包443
15.1.3乙太網介面的基本配置444
15.1.4乙太網介面的引腳描述445
15.2乙太網介面寄存器描述446
15.2.1MAC寄存器組447
15.2.2控制寄存器組454
15.2.3接收過濾寄存器組461
15.2.4模組控制寄存器組463
15.2.5描述符與狀態465
15.3乙太網介面的常用庫函數471
15.4乙太網介面應用實例479
15.4.1設計目標480
15.4.2硬體電路設計480
15.4.3簡易網頁流覽實例軟體設計492
15.4.4μIP實例軟體設計505
15.5實例總結523
進階篇
第16章嵌入式即時操作系統μC/OSII的移植與應用527
16.1嵌入式系統μC/OSII概述527
16.1.1μC/OSII系統特點527
16.1.2μC/OSII系統內核529
16.1.3任務管理538
16.1.4時間管理 540
16.1.5任務之間的通信與同步 540
16.1.6記憶體管理542
16.2如何在LPC1788微處理器上移植μC/OSII系統543
16.2.1移植μC/OSII系統必須滿足的條件543
16.2.2初識μC/OSII嵌入式系統544
16.2.3重提μC/OSII嵌入式系統移植要點559
16.3應用實例560
16.3.1設計目標560
16.3.2硬體電路設計560
16.3.3μC/OSII系統軟體設計560
16.4實例總結564
第17章LwIP移植與應用實例565
17.1乙太網概述565
17.1.1乙太網的網路傳輸介質565
17.1.2乙太網資料幀格式568
17.1.3嵌入式系統的乙太網協定570
17.2LwIP協議棧概述572
17.2.1LwIP協定棧的整體架構和進程模型572
17.2.2LwIP協定棧的API介面573
17.2.3LwIP記憶體管理591
17.3LwIP協定棧基於μC/OSII系統的移植592
17.3.1LwIP協定棧的原始檔案結構593
17.3.2LwIP協議棧的移植593
17.4應用實例607
17.4.1設計目標607
17.4.2系統軟體設計607
17.5實例總結613
第18章嵌入式即時操作系統FreeRTOS應用614
18.1嵌入式系統FreeRTOS概述614
18.1.1FreeRTOS系統的特點614
18.1.2FreeRTOS系統的任務管理615
18.1.3FreeRTOS系統的佇列管理626
18.1.4FreeRTOS系統的信號量629
18.1.5FreeRTOS系統的資源管理633
18.1.6FreeRTOS系統的記憶體管理635
18.1.7聯合程式638
18.2如何在LPC1788微控制上器移植FreeRTOS系統644
18.2.1初識FreeRTOS嵌入式系統645
18.2.2FreeRTOS系統的移植646
18.2.3FreeRTOS系統的可配置參數項654
18.3FreeRTOS應用實例657
18.4實例總結660
第19章嵌入式圖形系統μC/GUI的移植與應用661
19.1嵌入式圖形系統μC/GUI661
19.1.1μC/GUI系統的軟體結構661
19.1.2文本顯示662
19.1.3數值顯示664
19.1.42D圖形庫666
19.1.5字體671
19.1.6顏色672
19.1.7存儲設備674
19.1.8視窗管理器674
19.1.9視窗物件676
19.1.10對話方塊687
19.1.11抗鋸齒688
19.1.12輸入設備690
19.1.13時間函數692
19.2μC/GUI系統的移植692
19.2.1初識μC/GUI系統692
19.2.2細說μC/GUI系統的移植701
19.2.3μC/GUI系統的觸摸屏驅動704
19.2.4μC/OSII系統環境下支援μC/GUI系統705
19.3設計目標708
19.4系統軟體設計708
19.5實例總結719
第20章嵌入式即時操作系統μC/OSIII的移植與應用720
20.1嵌入式系統μC/OSIII概述720
20.1.1μC/OSIII系統的特點720
20.1.2代碼的臨界段725
20.1.3任務管理726
20.1.4任務就緒表740
20.1.5任務調度742
20.1.6上下文切換748
20.1.7時間管理749
20.1.8資源管理750
20.1.9信號量754
20.1.10事件標誌組765
20.1.11消息傳遞772
20.1.12記憶體管理782
20.2如何在LPC1788處理器上移植μC/OSIII系統784
20.2.1移植μC/OSIII系統必須滿足的條件784
20.2.2初識μC/OSIII嵌入式系統785
20.3設計目標808
20.4μC/OSIII系統軟體設計808
20.5實例總結814
參考文獻815