这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 企业专区 » TI » 【MSP焕新大作战】课程一+任务一---MSPM01306驱动RGBLED循环点

共2条 1/1 1 跳转至

【MSP焕新大作战】课程一+任务一---MSPM01306驱动RGBLED循环点亮

助工
2024-05-10 22:33:32     打赏

    本文的主要开发内容是对RGB LED的编程驱动以及循环点亮,首先需要了解这个外设连接在MCU哪些引脚上,下图为RGB LED的电路原理图        QQ图片20240503001741.png

    在原理图中,可以看到RGB LED分别连接在PA13、PA26、PA27引脚上,并且是共阴极接法,在控制LED点亮过程中需要置引脚电平为高位。三色LED中其他两种或多种颜色可以组合出不同的颜色,加之控制任意一个LED的亮度显示,就能组合出更多的色彩显示。

  打开CCS工具,按照课程一导入空白模板工程库,并修改工程名称

QQ图片20240510220632.png

    在syscfg文件中配置RGB灯的端口、引脚,RGB LED连接着主控芯片的PORTA,为了提高程序可读性,将端口命名为PORT_LED_x。

    源代码:

#include "ti_msp_dl_config.h"
#define DELAY_TIME 16000000
#define PORT_LED_R GPIOA
#define PORT_LED_G GPIOA
#define PORT_LED_B GPIOA
#define LED_SET_ONE(GPIOx,PINx) DL_GPIO_setPins(GPIOx,PINx)
#define LED_CLEAR_TWO(GPIOx,PINx) DL_GPIO_clearPins(GPIOx,PINx)
#define LED_SET_TWO(GPIOx,PINx) DL_GPIO_setPins(GPIOx,PINx)
#define LED_CLEAR_ONE(GPIOx,PINx) DL_GPIO_clearPins(GPIOx,PINx)
uint32_t RGB_LED_PIN_List[]={PORT_LED_R_PIN_LED_R_PIN,PORT_LED_G_PIN_LED_G_PIN,PORT_LED_B_LED_LED_B_PIN};//RGB三色灯
uint8_t PIN_List_Length=sizeof(RGB_LED_PIN_List)/sizeof(uint32_t);
/**
 *  @brief      循环点亮RGB单灯
 *
 *  @param[in]  None
 *
 */
void RGB_LED_Display_Loop(void){
    delay_cycles(DELAY_TIME);
    LED_SET_ONE(GPIOA,PORT_LED_R_PIN_LED_R_PIN);                            //点亮LED_R
    LED_CLEAR_TWO(GPIOA,PORT_LED_G_PIN_LED_G_PIN|PORT_LED_B_LED_LED_B_PIN); //熄灭LED_G、LED_B
    delay_cycles(DELAY_TIME);
    LED_SET_ONE(GPIOA,PORT_LED_G_PIN_LED_G_PIN);
    LED_CLEAR_TWO(GPIOA,PORT_LED_R_PIN_LED_R_PIN|PORT_LED_B_LED_LED_B_PIN);
    delay_cycles(DELAY_TIME);
    LED_SET_ONE(GPIOA,PORT_LED_B_LED_LED_B_PIN);
    LED_CLEAR_TWO(GPIOA,PORT_LED_R_PIN_LED_R_PIN|PORT_LED_G_PIN_LED_G_PIN);
}
/**
 *  @brief      循环点亮RGB双灯
 *
 *  @param[in]  None
 *
 */

int main(void)
{
    SYSCFG_DL_init();
    while (1) {
        delay_cycles(32000000);
        RGB_LED_Display_Loop();
        RGB_LED_Display_Loop_Two();
    }
}

    程序中除了定时1秒循环点亮Red、Green、Blue颜色外,还增加了品红、深空蓝、黄色颜色点亮,一共循环点亮6种颜色。源代码中实现思路是将循环点亮三色灯的逻辑代码封装成一个函数,函数当中主要依赖调用库函数完成输出引脚的高低电平切换。

SDCSNY%Z)GWX5)MBCWXCCV5.png

82DWK}3(K9SVWC`B)C(K`PP.png

Q3Q_L~PJQ36A8U5IU2YCM1M.png

    根据三原色原理,黄色Yellow可由红色R和绿色G组合而成;红色,绿色组合形成红Magenta;绿色,蓝色组合形成深天蓝DeppSkyBlue

06874d699a5441bf81865ac253c18838.jpg

3912a1dac556835ebab65ef591f369f8.jpg

3c7f58cfa39915c4f03aec6fc844b220.jpg





关键词: MSPM01306     RGB LED驱动          课程一    

高工
2024-05-11 08:19:29     打赏
2楼

谢谢分享


共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]