【Avnet | NXP FRDM-MCXN947试用活动】新板第一事——点灯
NXP
 
1435 人阅读
|
0 人回复
|
2024-11-17 
 
 
 
 
TA的每日心情  | 怒 2025-8-14 08:44 | 
|---|
 
  签到天数: 121 天 连续签到: 1 天 [LV.7]常住居民III 
翰林 
 
 
	- 积分
 - 11054
 
 
 
 
 | 
 
 
 本帖最后由 qintian0303 于 2024-11-17 18:47 编辑  
 
      我们在得到一个新的开发板后,第一件事情就是点灯了,这个可以说是比不过去的一环,可能很多朋友都会说,这么简单的事情不用做了,直接上强度。我想说的是完事开头难,在遇到一个新的开发板,新的开发环境的时候,这一步使我们踏出的第一步,不能少。 
      实际上点灯的操作是非常的简单的,板载的LED基本上都是通过普通的IO口操作就能实现控制,这也是单片机最简单的控制。 
      我们先看一下板载的LED情况,板载的可控LED是一个三色的RGB,原理图如下: 
 
      我们在之前的demo程序中加入这几个引脚的控制,在IDE中打开配置工具: 
 
      我们在引脚中添加三个IO的控制: 
 
      更新源码: 
       接下来我们可以写一写LED的控制程序,这里的我们实现的是RGB三色灯的循环点亮,通过延时的方式实现,先写一下简单的延时程序: 
- void Delay(unsigned int ms)
 
 - {
 
 -     int i=0,j=0;
 
 -     for(i=0;i<ms;i++)
 
 -         for(j=14400;j>0;j--);
 
 - }
 
  复制代码      然后是在while中的循环控制,这里我们引用了两个变量进行逻辑判断: 
- uint8_t LED_state = 0;
 
 - uint8_t LED_Oldstate = 0;
 
  
-  while (1)
 
 -     {
 
 -         Delay(1000);
 
 -         LED_state++;
 
 -         if(LED_state != LED_Oldstate)
 
 -         {
 
 -             LED_Oldstate = LED_state;
 
 -             LED_BLUE_OFF();
 
 -             LED_GREEN_OFF();
 
 -             LED_RED_OFF();
 
 -             switch(LED_Oldstate%3)
 
 -             {
 
 -             case 0:
 
 -                 LED_RED_ON();
 
 -                 break;
 
 -             case 1:
 
 -                 LED_GREEN_ON();
 
 -                 break;
 
 -             case 2:
 
 -                 LED_BLUE_ON();
 
 -                 break;
 
 -             default:
 
 -                 break;
 
 -             }
 
 -         }
 
 -     }
 
  复制代码       其实对于板载的一些资源,在board.h中已经有了一些基本定义,我们是可以直接使用的,下面就是一些简单的效果: 
 
 |   
 
  
  
  
 
 
 | 
| 
 | 
| 
 | 
| 
 | 
 |