3回答

2收藏

【赚周年币】技术帖Week1-Day1——LPC824 Breakout之一、点亮LED灯

#线上活动 #线上活动 5475 人阅读 | 3 人回复 | 2017-01-01

本帖最后由 toofree 于 2017-1-17 23:28 编辑

    活动拍了一块LPC824开发板,论坛有叫LPC824 Breakout的,在板上丝印名称为LPC824-DIP Board。
   


   


   


     Flash Magic、 CP2102驱动文件在这里就不罗嗦了,在开箱贴中有。
     [活动] 【LPC824-DIP Board开箱】内附Flash Magic + CP2102驱动
     http://www.nxpic.org/module/forum/thread-608299-1-1.html

     Kei MDK 5 的LPC800系列MCU的器件包从Kei官网下载,这里也附上。
     
Keil.LPC800_DFP.1.3.0.rar (9.53 MB, 下载次数: 23)


     在NXP官网下载了样例程序库,是针对LPC812 Max board和LPC824 Max board板的,也一并附上。
     
LPC824_Example_Code_Bundle_Keil_r1.0.zip (797.89 KB, 下载次数: 42)


     解压样例程序压缩包,打开工程合集“LPC824_Example_Code_Bundle_Keil_r1.0\Keil_Projects\peripherals_examples.uvmpw”
     首先编译 peripherals_lib和utilities_lib两个工程,生成必要的.lib文件,否则后面编译其它工程的时候会提示缺相应的.lib文件。
   


    设置工程 Example_GPIO_Pattern_Match 为主当前激活工程,并编译。编译通过,说明之前的两个.lib文件起作用了。
   


    下面我们将以Example_GPIO_Pattern_Match做模板,修改必要的设置开始点灯。
    需要修改一下board.h头文件,因为这里的管脚设置并不是针对我们的LPC824 Breakout来做的。
   


    要修改Board.h文件,那么就不得不查看LPC824 Breakout板的原理图,这里也附上。
   
lpc8xx_socket.rar (227.84 KB, 下载次数: 18)

    在原理图中可以看到,红、绿、蓝三个LED分别对应PIO0_15、PIO0_16、PIO0_17。
   


    下载调试串口的RXD、TXD分别对应PIO0_0、PIO0_4。尽管点灯和串口不大,但是我们一并修改,为了以后方便。
   
   

    我们需要修改Board.h中,30到37行内容。
    第38行不要动,对照LPC824应用手册可以找到为什么为设置为31,感兴趣的小伙伴可以看看,或者等我之后写个帖子。
   
   

    原内容为:
// 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

    修改为:
// LPC824 Max board
#elif TARGET_BOARD == 824
#define RED    (1<<15)
#define BLUE   (1<<17)
#define GREEN  (1<<16)
#define red_led_port   P0_15
#define blue_led_port  P0_17
#define green_led_port P0_16
#define TARGET_TX P0_4             // For the MBED serial port
#define TARGET_RX P0_0             // For the MBED serial port

#define NUM_IOCON_P0_SLOTS 31      // For looping through the pad controls
     
     接下来需要修改主文件“Example_GPIO_PatternMatch.c”。
     第54行可看到有一句,  Config_LEDs(RED | BLUE | GREEN);     
     说明程序中已经配置了三个LED灯,我们不需要再对LED初始化。

     那么我们在 while(2) 循环之前,加入我们的点亮LED灯代码。
    LEDs_On(RED);   
    LEDs_On(BLUE);
    LEDs_On(GREEN);
   
     

    好了,一切就绪,记得在目标板设置中,勾上生成HEX文件选项。
   


    编译生成.HEX文件。
   


     用Flash Magic下载生成的“Example_GPIO_Pattern_Match.hex”到LPC824 Breakout板卡。

     下载完固件,按一下RST键,三个灯是不是全点亮了呢,收工。是不是很简单呢!

     有同学会问,为什么不闪灯呢。因为闪灯需要延时,延时分硬件延时和软件延时。硬件有通用定时器和Stick定时器,涉及到其它硬件资源。要软件延时,那么咱们就来个比较精确的延时,精确的软件延时后面帖子介绍。

     具体Flash Magic工具怎么用,这里就不废话了。如果有不会使用Flash Magic的同学,请移步本人帖子。
    [活动] 【赚周年币】技术帖——FlashMagic的使用(基于LPC824-DIP Board)
    https://www.cirmall.com/bbs/thread-58962-1-1.html

    修改后工程文件打包附上,希望各位看官笑纳。
   
LPC824_Example_Code_Bundle_Keil_r1.0.rar (1.05 MB, 下载次数: 45)

    文件名与前面的官网库相同,但大小和内容不同




关注下面的标签,发现更多相似文章

评分

参与人数 2 +26 收起 理由
EEboard爱板网 + 1 3周发帖养成记 奖励
loveeeboard + 25

查看全部评分

分享到:
回复

使用道具 举报

回答|共 3 个

倒序浏览

沙发

yangjiaxu

发表于 2017-2-16 11:35:56 | 只看该作者

楼主您好,我通过您的教程已经学会了点灯,我是个初学者,所以想问个问题,也许幼稚,但请您别见笑。问题就是循环while(2)和while(1)有什么区别,两个都实现了效果,但是为什么不用常用的while(1)。嘻嘻
板凳

toofree

发表于 2017-2-16 11:58:45 | 只看该作者

yangjiaxu 发表于 2017-2-16 11:35
楼主您好,我通过您的教程已经学会了点灯,我是个初学者,所以想问个问题,也许幼稚,但请您别见笑。问题就 ...

没有区别。
while(N),判断N的值为逻辑值,真或假;0为假,非0为真。
N可以随便写,只要不等于0就是真,就能一直循环。
可以是,1,2,3,-1,-2,-3,1.5,1.6等等,反正就是非零
地板

yangjiaxu

发表于 2017-2-16 13:11:32 | 只看该作者

toofree 发表于 2017-2-16 11:58
没有区别。
while(N),判断N的值为逻辑值,真或假;0为假,非0为真。
N可以随便写,只要不等于0就是真, ...

谢谢您,我现在还在学,嘿嘿 有帮助真好,感谢您
您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条