项目概述:
点亮RGB,实现红绿蓝循环显示
硬件设计:
系统框图暨硬件原理图:
由上图可知:
1.LED下端已连接GND,说明是共阴极.
2.若想点亮各颜色的LED只需在相应颜色LED上端提供高电平使LED上下两端形成电势差产生电流即可.
3.各色LED与GPIO引脚对应关系如sys下
绿色 --- PA13
红色 --- PA26
蓝色 --- PA27
软件调试:
说到软件调试自然离不开IDE,主流IDE可能不外乎以下三个:
1.CCS
2.IAR
3.KEIL
综合考虑各种因素,本着萝卜白菜各有所爱的原则,本人选择CCS作为本次开发的IDE.
各位肯定以为到这里就结束了,其实还没有:
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
建议各位提前注册Ti账号,这样可以免去每次填写详细信息,一键下载.
下载完成打开后大致如下图所示:
相信使用过vs code的朋友不会太过陌生.
点击"create a new projict"
搜索关键字"GPIO"
我这里先择的是"Basic example"->"gpio_toggle_output"
配置好工程参数,点击"create"按钮即可.
接下来进入GPIO配置阶段,也就是sysconfig的使用阶段.
根据个人观察现阶段主流MCU厂商基本各家均有针对自家MCU芯片的图形化配置工具及芯片SDK开发包,此举极大方便了软件工程师开发软件的速度,也使得软件代码可移植性大大增强,工作中如果更换了相同厂家不同型号具备PIN TO PIN兼容的的MCU,无需更改PCB设计,只需使用sysconfig根据原理图重新生成基础配置代码,应用层代码几乎无需改动就能运行,
下面接入正题:
第一步---LED-G
第二步---LED-R
第三步---LED-B
配置完成后详见下图
到此GPIO配置完毕,进去代码开发阶段.
项目代码:
sysconfig配置完成后会生成"ti_msp_dl_config.h"头文件,此文件包含GPIO引脚配置信息
接下来适配"gpio_toggle_output.c"
接下来简单解释一下主要功能函数作用
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"
可以看到提示"Build Finished",到此处编译就算成功了.
接下来运行相关代码,
注意!!!---初次运行代码需要升级板载XDS固件---!!!
红灯效果图
绿灯效果图
蓝灯效果图