在官方提供了3种编译环境的例程,分别是基于IAR、KEIL及LPCXpresso的,本人习惯用keil来编译程序,故以它为工具来进行介绍。 使用的例程为LPC824_Example_Code_Bundle_Keil_r1.0 ,经解压即可获得相应的例程及工程文件。 为了有效地对例程进行编译,需对编译环境加以相应的配置。 1)下载Keil.LPC800_DFP.1.4.0.pack,并进行解压和安装。 2)分别执行文件夹peripherals_lib和utilities_lib 的工程 peripherals_lib.uvprojx 和 utilities_lib.uvprojx以生成相应的库文件peripherals_lib.lib和utilities_lib.lib,否则在编译例程时会报错,无法完成编译。 以例程Example_Multi_Timer_Blinky为例,经编译完成后的界面如图1所示。
图1实现编译
在未配置其它开发工具的条件下,该开发板是无法进行调试下载的,为此要进行下载测试就需要下载相应的Flash Magic软件,其版本要合适,低版本的Flash Magic是不包含LPC824的。 在安装Flash Magic之后,可将编译后的*.hex文件下载到MCU。再下载前,需同时按下板上的RST和ISP键,并在释放按键时先松开RST,再松开ISP。否则无法正常进入下载状态,正常下载的界面如图2所示。
图2 下载界面
在下载后,按下复位键即可见到运行效果。遗憾的是只有绿灯在闪亮,而红灯和蓝灯都退出了工作状态,那这是为什么呢? 看一下例程对3个LED的引脚定义如下: #define TARGET_BOARD 824 // For the LPC824 Max board // LPC824 Max board #elif TARGET_BOARD == 824 #define RED (1<<12) #define BLUE (1<<27) #define GREEN (1<<16) #define red_led_port P0_12 #define blue_led_port P0_27 #define green_led_port P0_16 #define TARGET_TX P0_7 // For the MBED serial port #define TARGET_RX P0_18 // For the MBED serial port #define NUM_IOCON_P0_SLOTS 31 // For looping through the pad controls 也就是说:
红灯连的PIO0_12、蓝灯连的PIO0_27、绿灯连的PIO0_16,然而再看一下开发板的原理图,参见图3所示。 其连接情况却是: 红灯连的PIO0_15、蓝灯连的PIO0_17、绿灯连的PIO0_16,只有绿灯是与程序相符合的,所以单有它的工作是正常就不难理解了。
图3 LED连接线路
将程序中的定义重新修改为如下的内容: #define TARGET_BOARD 824 // For the LPC824 Max board // LPC824 Max board #elif TARGET_BOARD == 824 #define RED (1<<15) // (1<<12) #define BLUE (1<<17) // (1<<27) #define GREEN (1<<16) #define red_led_port P0_15 // P0_12 #define blue_led_port P0_17 // P0_27 #define green_led_port P0_16 #define TARGET_TX P0_7 // For the MBED serial port #define TARGET_RX P0_18 // For the MBED serial port #define NUM_IOCON_P0_SLOTS 31 // For looping through the pad controls 重新再编译和下载,则会见到3个LED可以轮流闪动了。之所以出现这个情况,就是因为该例程并不是为本开发板而配置的,其目标板应是LPC824-MAX !
图4 LPC824-MAX板
|