3184|7

606

帖子

20

TA的资源

一粒金砂(高级)

楼主
 

【LPC54100】第一例RGB闪烁(keil版) [复制链接]

本帖最后由 ketose 于 2015-2-16 10:42 编辑

今天刚收到这个板子,研究了一下,这个板子上有个RGB的LED灯,那我们不从简单的开始让RGB交替显示。
1、电路图

2、实现思路
对GPIO端口 P0口的29,30,31引脚分别置高低电平,实现交替闪烁。
3、实现代码
  1. #include <LPC54xxx.h>                   // Device header
  2. #include <stdint.h>

  3. #define LED_NUM             (3)
  4. #define LED_RED            29
  5. #define LED_GREEN        30
  6. #define LED_BLUE        31

  7. const uint32_t led_mask[] = { 1UL << LED_RED, 1UL << LED_GREEN, 1UL << LED_BLUE };
  8. //打开一个LED
  9. void LED_On (uint32_t num)
  10. {
  11.     num = num - 29;
  12.   LPC_GPIO->CLR0 = led_mask[num];               /* LED On                   */
  13. }
  14. //关闭一个LED
  15. void LED_Off (uint32_t num)
  16. {
  17.     num = num - 29;
  18.   LPC_GPIO->SET0 = led_mask[num];               /* LED Off                  */
  19. }
  20. //打开或关闭全部的LED
  21. int32_t LED_SetOut(uint32_t value)
  22. {
  23.   int i;

  24.   for (i = 0; i < LED_NUM; i++)
  25.     {
  26.     if (value & (1<<i))
  27.         {
  28.       LED_On (i);
  29.     } else
  30.         {
  31.       LED_Off(i);
  32.     }
  33.   }
  34.   return 0;
  35. }
  36. //初始化LED
  37. void LED_Initialize (void)
  38. {

  39.   LPC_SYSCON->AHBCLKCTRLSET0 = (1UL << 14);       /* enable GPIO0 clock       */

  40.   LPC_GPIO->DIR0 |= (led_mask[0] |                /* configure GPIO as output */
  41.                      led_mask[1] |
  42.                      led_mask[2]  );

  43.   LED_SetOut (0);                                 /* switch LEDs off          */
  44. }
  45. //延时
  46. void delay(uint32_t num)
  47. {
  48.     uint32_t i,j;
  49.     for(i=0;i<num;i++)
  50.         for(j=0;j<num;j++)
  51.         {}
  52. }

  53. int main()
  54. {
  55.     int flashHz = 1000;
  56.     LED_Initialize();
  57.     while(1)
  58.     {
  59.         LED_On(LED_RED);
  60.         delay(flashHz);
  61.         LED_Off(LED_RED);
  62.         delay(flashHz);
  63.         LED_On(LED_GREEN);
  64.         delay(flashHz);
  65.         LED_Off(LED_GREEN);
  66.         delay(flashHz);
  67.         LED_On(LED_BLUE);
  68.         delay(flashHz);
  69.         LED_Off(LED_BLUE);
  70.         delay(flashHz);
  71.     }
  72. }
复制代码
4、实现效果
视频发布中,稍后补上。

此帖出自NXP MCU论坛

最新回复

视频拍的不错,赞一个~~  详情 回复 发表于 2015-3-1 01:09
点赞 关注
 

回复
举报

862

帖子

2

TA的资源

纯净的硅(初级)

沙发
 
开发环境?楼主用?
此帖出自NXP MCU论坛

点评

用Keil开发的。用寄存器好理解些。  详情 回复 发表于 2015-2-16 10:43
 
个人签名水不撩不知深浅 人不拼怎知输赢
 
 

回复

1297

帖子

2

TA的资源

纯净的硅(中级)

板凳
 
楼主对LPC的寄存器很了解啊
此帖出自NXP MCU论坛
 
 
 

回复

1144

帖子

24

TA的资源

纯净的硅(高级)

4
 
这种宏定义方式不错~学习了
此帖出自NXP MCU论坛
 
 
 

回复

1144

帖子

24

TA的资源

纯净的硅(高级)

5
 
这是哪个核上运行的?
此帖出自NXP MCU论坛

点评

在M4内核上跑的。  详情 回复 发表于 2015-2-16 10:43
 
 
 

回复

606

帖子

20

TA的资源

一粒金砂(高级)

6
 
fxyc87 发表于 2015-2-16 08:48
这是哪个核上运行的?



在M4内核上跑的。
此帖出自NXP MCU论坛
 
 
 

回复

606

帖子

20

TA的资源

一粒金砂(高级)

7
 
wo4fisher 发表于 2015-2-16 07:44
开发环境?楼主用?



用Keil开发的。用寄存器好理解些。
此帖出自NXP MCU论坛
 
 
 

回复

1403

帖子

1

TA的资源

纯净的硅(中级)

8
 
视频拍的不错,赞一个~~
此帖出自NXP MCU论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表