【Avnet | NXP FRDM-MCXN947试用活动】新板第一事——点灯
NXP
1597 人阅读
|
0 人回复
|
2024-11-17
TA的每日心情 | 怒 2025-8-14 08:44 |
|---|
签到天数: 121 天 连续签到: 1 天 [LV.7]常住居民III
举人
- 积分
- 852
|
本帖最后由 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中已经有了一些基本定义,我们是可以直接使用的,下面就是一些简单的效果:
|
|
|
|
|
|
|
|
|