点亮RGB,实现红色、绿色、蓝色的循环显示
一、硬件原理
本课程主要内容为使用TI MSMP1306开发板,实现点亮RGB,实现红色、绿色、蓝色的循环显示。
具体的原理图如下所示:
使用灌电流方式,对LED灯进行控制,以0针脚为例,置1时,LED熄灭,对0阵脚置0时,LED点亮。

其中三个LED针脚的具体原理图如下图所示:

在进行准备过程中,需要先下载CCS SDK、TI-sysconfig及CCS12.7.1.00001_win64版本。
步骤分别是新建工程、分别进行sysconfig配置、选择example例程,比较头疼的问题是首次新建工程,未发现sysconfig文件,随后再此新建工程,并与群友进行讨论,发现应采用包含sysconfig文件的SKD库样例。
随后发现,在进行sysconfig配置时,要先进入ccs projects,后来发现从file及右键均可进入。如图

二、关键软件代码
在进行代码编写过程中,主要犯错包括:
宏定义define部分,括弧编写错误,后来进行修改,终于编译通过:
具体过程为:
首先使用宏定义对红色、蓝色、绿色的亮灭进行定义,随后,在主程序中,分别调用红蓝绿三色的亮灯,并对三个灯的亮灯时间进行延时控制,最终经过调试,最终实现了预定的功能。
#define LED_RED_1 DL_GPIO_setPins(GPIOA,DL_GPIO_PIN_26) //红灯亮
#define LED_RED_0 DL_GPIO_clearPins(GPIOA,DL_GPIO_PIN_26)//红灯灭
#define LED_GREEN_1 DL_GPIO_setPins(GPIOA,DL_GPIO_PIN_13)//绿灯亮
#define LED_GREEN_0 DL_GPIO_clearPins(GPIOA,DL_GPIO_PIN_13)//绿灯灭
#define LED_BLUE_1 DL_GPIO_setPins(GPIOA,DL_GPIO_PIN_27)//蓝灯亮
#define LED_BLUE_0 DL_GPIO_clearPins(GPIOA,DL_GPIO_PIN_27)//蓝灯灭
#include <ti/driverlib/m0p/dl_interrupt.h>
#include "ti_msp_dl_config.h"
int main(void)
{
SYSCFG_DL_init();
while (1)
{
LED_RED_1;
LED_GREEN_0;
LED_BLUE_0;
delay_cycles(32000000);//红灯亮,然后延时
LED_RED_0;
LED_GREEN_1;
LED_BLUE_0;
delay_cycles(32000000);//绿灯亮,然后延时
LED_RED_0;
LED_GREEN_0;
LED_BLUE_1;
delay_cycles(32000000);//绿灯亮,然后延时
}
}
三、实现结果
以上代码烧录后,结果如下:


以上为各灯点亮结果。
我要赚赏金
