回答

收藏

【Avnet | NXP FRDM-MCXN947试用活动】新板第一事——点灯

NXP NXP 1435 人阅读 | 0 人回复 | 2024-11-17

本帖最后由 qintian0303 于 2024-11-17 18:47 编辑

      我们在得到一个新的开发板后,第一件事情就是点灯了,这个可以说是比不过去的一环,可能很多朋友都会说,这么简单的事情不用做了,直接上强度。我想说的是完事开头难,在遇到一个新的开发板,新的开发环境的时候,这一步使我们踏出的第一步,不能少。
      实际上点灯的操作是非常的简单的,板载的LED基本上都是通过普通的IO口操作就能实现控制,这也是单片机最简单的控制。
      我们先看一下板载的LED情况,板载的可控LED是一个三色的RGB,原理图如下:

      我们在之前的demo程序中加入这几个引脚的控制,在IDE中打开配置工具:

      我们在引脚中添加三个IO的控制:

      更新源码:
       接下来我们可以写一写LED的控制程序,这里的我们实现的是RGB三色灯的循环点亮,通过延时的方式实现,先写一下简单的延时程序:
  1. void Delay(unsigned int ms)
  2. {
  3.     int i=0,j=0;
  4.     for(i=0;i<ms;i++)
  5.         for(j=14400;j>0;j--);
  6. }
复制代码
     然后是在while中的循环控制,这里我们引用了两个变量进行逻辑判断:
  1. uint8_t LED_state = 0;
  2. uint8_t LED_Oldstate = 0;

  3. while (1)
  4.     {
  5.         Delay(1000);
  6.         LED_state++;
  7.         if(LED_state != LED_Oldstate)
  8.         {
  9.             LED_Oldstate = LED_state;
  10.             LED_BLUE_OFF();
  11.             LED_GREEN_OFF();
  12.             LED_RED_OFF();
  13.             switch(LED_Oldstate%3)
  14.             {
  15.             case 0:
  16.                 LED_RED_ON();
  17.                 break;
  18.             case 1:
  19.                 LED_GREEN_ON();
  20.                 break;
  21.             case 2:
  22.                 LED_BLUE_ON();
  23.                 break;
  24.             default:
  25.                 break;
  26.             }
  27.         }
  28.     }
复制代码
      其实对于板载的一些资源,在board.h中已经有了一些基本定义,我们是可以直接使用的,下面就是一些简单的效果:

分享到:
回复

使用道具 举报

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

本版积分规则

关闭

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