这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 企业专区 » TI » 课程1+任务1+点亮RGB,实现红色,绿色,蓝色的循环显示

共4条 1/1 1 跳转至

课程1+任务1+点亮RGB,实现红色,绿色,蓝色的循环显示

菜鸟
2024-06-02 23:59:31     打赏

项目概述:

    点亮RGB,实现红绿蓝循环显示

硬件设计:

    系统框图暨硬件原理图:

        企业微信截图_17173366692795.png

    由上图可知:

       1.LED下端已连接GND,说明是共阴极.

       2.若想点亮各颜色的LED只需在相应颜色LED上端提供高电平使LED上下两端形成电势差产生电流即可.

       3.各色LED与GPIO引脚对应关系如sys下

            绿色 --- PA13

            红色 --- PA26

            蓝色 --- PA27

软件调试:

    说到软件调试自然离不开IDE,主流IDE可能不外乎以下三个:

        1.CCS

        2.IAR

        3.KEIL

    综合考虑各种因素,本着萝卜白菜各有所爱的原则,本人选择CCS作为本次开发的IDE.

    各位肯定以为到这里就结束了,其实还没有:

        企业微信截图_17173376217532.png

        CCS其实也有两个选择:

        1.传统的CCS

        2.新版CCS THEIA

        既然出新版本了,肯定得尝尝鲜,于是就选择了ccs theia.

        这里简单和大家说一下使用CCS THEIA的好处,各位仅供参考

        1.插件已提前安装,具备代码自动补全功能.

        2.Windows,macos,linux都可以安装,这软件不挑系统.

        3.sysconfig和MSP M0 SDK工程配置完成后会自动安装.

        接下来就是安装软件了,下载连接在这里:

        https://www.ti.com.cn/tool/cn/CCSTUDIO

        企业微信截图_17173381316037.png

        建议各位提前注册Ti账号,这样可以免去每次填写详细信息,一键下载.

        下载完成打开后大致如下图所示:

        image.png

        相信使用过vs code的朋友不会太过陌生.

        点击"create a new projict"

        企业微信截图_17173383766283.png

        搜索关键字"GPIO"

        企业微信截图_17173387946774.png

        我这里先择的是"Basic example"->"gpio_toggle_output"

        配置好工程参数,点击"create"按钮即可.

    接下来进入GPIO配置阶段,也就是sysconfig的使用阶段.

    根据个人观察现阶段主流MCU厂商基本各家均有针对自家MCU芯片的图形化配置工具及芯片SDK开发包,此举极大方便了软件工程师开发软件的速度,也使得软件代码可移植性大大增强,工作中如果更换了相同厂家不同型号具备PIN TO PIN兼容的的MCU,无需更改PCB设计,只需使用sysconfig根据原理图重新生成基础配置代码,应用层代码几乎无需改动就能运行,

    下面接入正题:

    企业微信截图_1717339733860.png

    第一步---LED-G

    企业微信截图_17173400505707.png

    第二步---LED-R

    企业微信截图_17173401206902.png

    第三步---LED-B

企业微信截图_17173402069006.png

    配置完成后详见下图

企业微信截图_17173402505018.png

    到此GPIO配置完毕,进去代码开发阶段.

项目代码:

    sysconfig配置完成后会生成"ti_msp_dl_config.h"头文件,此文件包含GPIO引脚配置信息

企业微信截图_17173405422234.png

    接下来适配"gpio_toggle_output.c"

    企业微信截图_17173409842849.png

    接下来简单解释一下主要功能函数作用

        delay_cycles(DELAY);延时0.5秒,如需修改延时时间只需修改三十六行

            #define DELAY (16000000) 括号中的数值即可.

        DL_GPIO_setPins-->设置相应IO输出高电平

        DL_GPIO_clearPins-->设置相应IO输出低电平

        DL_GPIO_togglePins-->翻转相应IO管脚输出电平

各功能函数作用已讲清楚,接下来修改代码如下所示:


#include "ti_msp_dl_config.h"


/* This results in approximately 0.5s of delay assuming 32MHz CPU_CLK */

#define DELAY (16000000)


int main(void)

{

    /* Power on GPIO, initialize pins as digital outputs */

    SYSCFG_DL_init();


    /* 熄灭红绿蓝三个LED */

    DL_GPIO_clearPins(GPIO_LEDS_PORT, GPIO_LEDS_USER_LED_R_PIN);

    DL_GPIO_clearPins(GPIO_LEDS_PORT, GPIO_LEDS_USER_LED_G_PIN);

    DL_GPIO_clearPins(GPIO_LEDS_PORT, GPIO_LEDS_USER_LED_B_PIN);


    while (1) {

        /* 点亮 红色 LED */

        delay_cycles(DELAY);

        DL_GPIO_setPins(GPIO_LEDS_PORT,GPIO_LEDS_USER_LED_R_PIN);

        /* 熄灭 红色 LED */

        delay_cycles(DELAY);

        DL_GPIO_clearPins(GPIO_LEDS_PORT,GPIO_LEDS_USER_LED_R_PIN);


        /* 点亮 绿色 LED */

        delay_cycles(DELAY);

        DL_GPIO_setPins(GPIO_LEDS_PORT,GPIO_LEDS_USER_LED_G_PIN);

        /* 熄灭 绿色 LED */

        delay_cycles(DELAY);

        DL_GPIO_clearPins(GPIO_LEDS_PORT,GPIO_LEDS_USER_LED_G_PIN);


        /* 点亮 蓝色 LED */

        delay_cycles(DELAY);

        DL_GPIO_setPins(GPIO_LEDS_PORT,GPIO_LEDS_USER_LED_B_PIN);

        /* 熄灭 蓝色 LED */

        delay_cycles(DELAY);

        DL_GPIO_clearPins(GPIO_LEDS_PORT,GPIO_LEDS_USER_LED_B_PIN);

    }

}


    点击"Project"->"Build Project"

image.png

    可以看到提示"Build Finished",到此处编译就算成功了.


    接下来运行相关代码,

        注意!!!---初次运行代码需要升级板载XDS固件---!!!

企业微信截图_17173435131859.png

    红灯效果图

a5781d744e7653d715e8cc0032b12a6d.jpg

    绿灯效果图

a604c14e330e2d5e28308c9075a87eb5.jpg

    蓝灯效果图

c41fb57fceefcb8a23fb56c61272ad1c.jpg

    



专家
2024-06-03 01:56:20     打赏
2楼

感谢楼主分享


专家
2024-06-03 08:46:52     打赏
3楼

点灯开始,加油


专家
2024-06-09 18:50:49     打赏
4楼

感谢楼主分享


共4条 1/1 1 跳转至

回复

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