一、附屬代碼的目錄結構
提供的所有例程和代碼,都被集中在IAR的一個工作區(qū)(Workspace)里面,讀者把提供的ZIP文件解壓到某個目錄下(例如Workspace_IAR),就可以看到這個工作區(qū)的文件和其它一些目錄,下面是目錄截圖:

LPC800_Cookbook_IAR_Workspace.eww就是集中了本文所有例程項目的工作區(qū)配置文件,讀者可以雙擊這個文件啟動IAR的IDE 開發(fā)環(huán)境,或在IAR軟件中從菜單File/OpenWorkspace...打開這個文件。稍等片刻,即可看到這個工作區(qū)里集成的所有項目。
除了這個工作區(qū)配置文件(.eww),讀者還會看到其它幾個目錄:

打開目錄LPC824_Example_Code_Bundle_IAR_r1.0,它的目錄結構如右圖。這里面包含了IAR的項目文件目錄和一些源文件目錄:

與本書各章節(jié)相關的代碼都放在圖18所示的“Projects”目錄下,每個項目都有一個子目錄,如右圖所示:


在IAR的IDE環(huán)境中,編譯任何一個項目,確切地說是Build一個項目時,都會在項目所在的目錄下按照不同的項目配置自動地生成一個目標文件的目錄。例如上面截圖中看到,對應項目Cookbook_NVIC_GPIO所生成的目標文件目錄是Cookbook,而對應項目LPC82x_Lib、Peripherals_lib或Utilities_lib所生成的目標文件目錄是flash,這個目錄的名字是由當前項目的配置相關。
在IAR的IDE中,點擊Project Edit Configurations...后,就可以編輯所需要的配置名稱,然后再點擊Project Options...對該配置選項的各項配置進行選擇,例如可以選擇包含的文件、編譯優(yōu)化的級別、鏈接不同的函數(shù)庫等。這樣可以用一套源代碼,得到不同的目標文件或可執(zhí)行文件。有興趣的讀者可以參考IAR的相應文檔,進一步了解其功能和使用方法。如下圖:

二、例程項目下的文件
有關一個例程項目的文件,都集中放置在一個相同的目錄下,這個目錄的名字都是以下面的形式命名:
|
0 Cookbook_模塊名_功能名
|
模塊名表示該例程是屬于哪個模塊,例如NVIC、SCT、GPIO等。
功能名表示該例程所要實現(xiàn)的功能,例如Cookbook_NVIC_GPIO表示用GPIO演示NVIC的例程。另一個例子是,Cookbook_SCT_QEI表示是用SCT實現(xiàn)QEI(旋轉編碼器)的例程。
以Cookbook_NVIC_GPIO為例,在每一個項目的目錄下基本都包含下面一些文件:

每個項目的主函數(shù)源文件,都是使用與項目名稱一樣的名字,讀者可以很容易地與其它源文件區(qū)分出來。項目中其它源文件的命名沒有硬性規(guī)定,命名基本是以標示所執(zhí)行的功能為原則。
以下這幾個文件,基本是每個項目里都有的源文件:
■ IAR_cstartup_M.s:是一個匯編文件。
■ system_LPC8xx.c:當CPU啟動時,會從上述匯編文件中的復位入口開始執(zhí)行指令,然后轉到這個.c文件中,對LPC800中與時鐘相關的振蕩器、PLL等部分執(zhí)行初始化。完成基本初始化后就轉到用戶自己的main()函數(shù),因此如果沒有特殊要求,尤其時需要嘗試本書中的例程時,用戶程序可以不用再考慮主時鐘部分的初始化,此時主時鐘已經(jīng)被配置為30MHz的速率,用戶程序可以直接運行其它模塊的初始化了。
■ IAR_Redirect.c和Serial.c:當需要使用標準輸入輸出的函數(shù),例如printf、scanf等時,項目里需要包含這兩個文件,它們把這些標準輸入輸出函數(shù)與UART0對接。
一般情況下,用戶不必理會與項目相關的四個文件(*.dep *.ewd *.ewp *.wet),如果需要了解詳細信息,請參考IAR的相關文檔。
三、例程項目索引
下面這張表是所有例程項目的索引,讀者在需要嘗試相應例程時,可以依據(jù)此表找到對應的項目代碼。|
項目名稱
|
所在章節(jié)
|
簡要說明
|
|
Cookbook_NVIC_GPIO
|
3.1.5中斷優(yōu)先級和嵌套的演示例程
|
演示中斷嵌套的現(xiàn)象和效果
|
|
Cookbook_SWM_LEDs
|
6.3.3通過開關矩陣實現(xiàn)呼吸燈的輪轉
|
通過配置SWM改變信號的輸出引腳
|
|
Cookbook_SWM_USARTs
|
6.3.4兩個USART模塊對接
|
通過配置SWM實現(xiàn)2個USART在芯片內部對接
|
|
Cookbook_SCT_QEI
|
7.5使用IOCON的數(shù)字濾波功能實現(xiàn)按鍵去抖動的例程
|
使用數(shù)字濾波實現(xiàn)按鍵去抖
此部分在QEI的例程中
|
|
Cookbook_GPIO_LEDs
|
8.3 GPIO控制器使用例程
|
演示如何直接操作GPIO
|
|
Cookbook_GPIO_Pmat
|
9.6.1異或的實現(xiàn)
|
使用模式匹配引擎實現(xiàn)兩個按鍵的異或操作
|
|
Cookbook_GPIO_Pmat-Vote
|
9.6.2三人表決器
|
使用模式匹配引擎實現(xiàn)一個三人表決器的邏輯
|
|
|
10.7.1 DMA執(zhí)行內存中的數(shù)據(jù)塊拷貝
|
使用DMA搬運內存中的數(shù)據(jù)塊
|
|
Cookbook_DMA_UART
|
10.7.2 DMA執(zhí)行USART0的連續(xù)發(fā)送(硬件觸發(fā))
|
使用DMA發(fā)送數(shù)據(jù)串至UART,觸發(fā)一次將發(fā)送出所有的數(shù)據(jù)字節(jié)
|
|
Cookbook_DMA_UART_Burst
|
10.7.3 DMA執(zhí)行USART0的成組發(fā)送
|
使用DMA發(fā)送數(shù)據(jù)串至UART,使用乒乓鏈接的描述符連續(xù)發(fā)送多個字符串,每觸發(fā)一次將發(fā)送成組發(fā)出8個數(shù)據(jù)字節(jié),循環(huán)往復
|
|
Cookbook_UART_Basic
|
11.5 USART實例
|
使用中斷方式接收UART傳輸?shù)臄?shù)據(jù),再發(fā)送回去
|
|
Cookbook_UART_HWFlow
|
11.6帶硬件流控的UART收發(fā)例程
|
通過開發(fā)板上的按鍵和LED模擬和顯示硬件流控
|
|
Cookbook_UART_Autoband
|
11.7 USART在異步模式下的自動波特率匹配
|
演示自動波特率匹配的設置和使用
|
|
Cookbook_UART_Sync
|
11.8 USART的同步模式
|
演示如何配置同步模式,并演示如何在沒有示波器的情況下,查看輸出的波形
|
|
Cookbook_SPI_Master
|
12.3.1 SPI的輪詢方式操作
|
使用輪詢方式讀出SPI Flash的若干ID
例程中還包含一段簡單的中斷方式操作
|
|
Cookbook_SPI_Int_M25B32BV
|
12.3.3中斷方式訪問SPI Flash的完整例程
|
使用中斷方式實現(xiàn)對SPI Flash的所有基本操作,包括讀寫和擦除
|
|
|
13.3 I2C主機收發(fā)操作步驟——輪詢方式
|
演示主機模式下使用輪詢方式進行I2C的收發(fā)
|
|
Cookbook_I2C_EEPROM_Polling
|
13.4監(jiān)測功能的使用
|
演示檢測功能的使用以及數(shù)據(jù)的解讀
|
|
Cookbook_I2C_EEPROM_Int
|
13.5 I2C主機收發(fā)操作步驟——中斷方式
|
使用狀態(tài)機實現(xiàn)中斷方式的I2C收發(fā)
|
|
Cookbook_I2C_EEPROM_Int
|
13.6 LPCOpen里如何實現(xiàn)I2C主機收發(fā)
|
使用狀態(tài)機實現(xiàn)中斷方式的I2C收發(fā),這是LPCOpen中的實現(xiàn)方法
|
|
Cookbook_I2C_Slave_Int
|
13.7 I2C從機收發(fā)操作步驟——中斷方式
|
使用LPC824模擬一個I2C EEPROM,演示使用中斷方式操作I2C從機
|
|
Cookbook_SCT_PWM2
|
14.11例程:使用SCT產(chǎn)生2路PWM輸出
|
初始化SCT,在中斷里控制輸出信號的占空比實現(xiàn)呼吸燈控制
|
|
Cookbook_SCT_PWM_DMA
|
14.12使用SCT+DMA自主實現(xiàn) LED呼吸燈的例程
|
采用DMA更新匹配重裝載寄存器的方式調節(jié)占空比,實現(xiàn)無中斷、無CPU干預的LED呼吸燈功能
|
|
Cookbook_SCT_PWM_Breath
|
14.13單獨使用SCT自主實現(xiàn) LED呼吸燈的例程
|
僅使用SCT,實現(xiàn)不需CPU和DMA干預的LED呼吸燈
|
|
Cookbook_SCT_QEI
|
14.16.3 SCT實現(xiàn)旋轉編碼器接口的例程
|
演示SCT讀取旋轉編碼器的數(shù)據(jù),并演示使用IOCON的數(shù)字濾波功能做毛刺濾波
|
|
Cookbook_WWDT
|
|
演示窗口看門狗的功能
|
|
Cookbook_MRT
|
16.3多速率定時器(MRT)應用例程
|
使用兩個MRT的通道產(chǎn)生定時中斷控制LED燈的占空比,用ADC采樣電位器決定占空比
|
|
Cookbook_MRT_BusStall
|
16.4.1總線暫停模式產(chǎn)生PWM波例程
|
使用MRT的總線暫停模式產(chǎn)生PWM波形,演示總線暫停模式的功能和對系統(tǒng)的影響
|
|
Cookbook_SysTick
|
17.2.2輪詢程序實現(xiàn)機械按鍵消抖
17.2.3中斷方式實現(xiàn)機械按鍵消抖
|
分別用輪詢和中斷方式實現(xiàn)按鍵消抖的功能
|
|
Cookbook_ADC
|
18.5 ADC應用例程
|
使用按鍵觸發(fā)ADC轉換,中斷讀出ADC轉換結果,演示MODE的功效
|
|
Cookbook_ADC_DMA
|
18.6 ADC配合DMA的例程
|
使用DMA傳輸轉換結果
|
|
Cookbook_ADC_DMA_Burst
|
18.6.1 ADC配合DMA的連續(xù)轉換傳輸
|
使用DMA的成組模式傳輸轉換結果,ADC使用軟件觸發(fā)
|
END
更多恩智浦AI-IoT市場和產(chǎn)品信息,邀您同時關注“NXP客?!蔽⑿殴娞?/span>
?
?
?NXP客棧
恩智浦致力于打造安全的連接和基礎設施解決方案,為智慧生活保駕護航。
長按二維碼,關注我們
恩智浦MCU加油站
這是由恩智浦官方運營的公眾號,著重為您推薦恩智浦MCU的產(chǎn)品信息、開發(fā)技巧、教程文檔、培訓課程等內容。
?長按二維碼,關注我們
原文標題:LPC800前生今世 第四章-系列總覽指南書中的例程和項目文件
文章出處:【微信公眾號:恩智浦MCU加油站】歡迎添加關注!文章轉載請注明出處。
-
mcu
+關注
關注
147文章
19164瀏覽量
404853 -
恩智浦
+關注
關注
14文章
6129瀏覽量
155251
原文標題:LPC800前生今世 第四章-系列總覽指南書中的例程和項目文件
文章出處:【微信號:NXP_SMART_HARDWARE,微信公眾號:恩智浦MCU加油站】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
德州儀器TPS65176系列芯片封裝及設計指南
【「Altium Designer 25 電路設計精進實踐」閱讀體驗】+第九章實例- what?這不就是官方的SAM V71開發(fā)板嗎?
【「Altium Designer 25 電路設計精進實踐」閱讀體驗】+本書概覽與內容特點介紹
【「Altium Designer 25 電路設計精進實踐」閱讀體驗】+總覽篇
【「龍芯之光 自主可控處理器設計解析」閱讀體驗】+可測試性設計章節(jié)閱讀與自己的一些感想
LPC800系列MCU:低功耗與高性能的完美結合
探索NXP LPC5536-EVK評估板:快速上手指南
【「AI芯片:科技探索與AGI愿景」閱讀體驗】+內容總覽
【「DeepSeek 核心技術揭秘」閱讀體驗】--全書概覽
【「Yocto項目實戰(zhàn)教程:高效定制嵌入式Linux系統(tǒng)」閱讀體驗】01初讀體驗
初級工程師PCB設計技巧(PPT版)
電源設計中功率因數(shù)校正講解
【「# 運算放大器參數(shù)解析與LTspice應用仿真」閱讀體驗】+全書概覽與第一章閱讀分享
第四章 什么是寄存器
LPC800前生今世 第四章-系列總覽指南書中的例程和項目文件
評論