点亮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);//绿灯亮,然后延时 } }
三、实现结果
以上代码烧录后,结果如下:
以上为各灯点亮结果。