以前使用过TI的芯片开发,用起来非常不错,这款开发板也是TI的MSPM0L1306芯片,今天用它来点亮RGB,
在写代码之前,需要清楚硬件配置,了解使用哪个GPIO,先看原理图,需要注意跳线帽一定要接上:
打开CCS软件,导入一个空的历程,然后打开syscfg文件,进入软件配置界面,软件配置界面可以自定义GPIO的名字,非常方便开发者调用;设置PA13、PA26、PA27三个管脚为输出模式,名字自定义
编译一下,底层的驱动配置代码就自动生成了,这种图形化的编程大大提高了开发者的工作效率,非常nice;
下一步就要进行代码编写,我习惯把底层驱动的函数重定义一遍再使用,这样方便移植,后期维护起来也很方便,而且增加了的代码的可读性;重新定义红灯,绿灯和蓝灯的点亮代码,定义延时函数,在这里,我新建了一个BSP的.C和.H文件,用头文件来存放他们的定义和生明功能函数;
/* * bspRGB.h * * Created on: 2024年7月8日 * Author: liusl */ #ifndef BSPRGB_H_ #define BSPRGB_H_ #define RGB_BLUE DL_GPIO_setPins(LED_RED_PORT_PORT, LED_RED_PORT_RGB_BLUE_PIN_PIN);\ DL_GPIO_clearPins(LED_RED_PORT_PORT, LED_RED_PORT_RGB_RED_PIN_PIN);\ DL_GPIO_clearPins(LED_RED_PORT_PORT, LED_RED_PORT_RGB_GREEN_PIN_PIN); #define RGB_GREEN DL_GPIO_setPins(LED_RED_PORT_PORT, LED_RED_PORT_RGB_GREEN_PIN_PIN);\ DL_GPIO_clearPins(LED_RED_PORT_PORT, LED_RED_PORT_RGB_RED_PIN_PIN);\ DL_GPIO_clearPins(LED_RED_PORT_PORT, LED_RED_PORT_RGB_BLUE_PIN_PIN); #define RGB_RED DL_GPIO_setPins(LED_RED_PORT_PORT, LED_RED_PORT_RGB_RED_PIN_PIN);\ DL_GPIO_clearPins(LED_RED_PORT_PORT, LED_RED_PORT_RGB_BLUE_PIN_PIN);\ DL_GPIO_clearPins(LED_RED_PORT_PORT, LED_RED_PORT_RGB_GREEN_PIN_PIN); #define DELAY delay_cycles(CPUCLK_FREQ) void RgbFlowLED(void); #endif /* BSPRGB_H_ */ 然后在.C文件中编写RGB的逻辑函数; #include "ti_msp_dl_config.h" #include "bspRGB.h" /*RGB流水灯函数 * ======== SYSCFG_DL_init ======== * Perform any initialization needed before using any board APIs */ void RgbFlowLED(void) { RGB_BLUE; DELAY; RGB_GREEN; DELAY; RGB_RED; DELAY; }
最后,到empty.C 文件的主函数中调用这个功能函数;
#include <ti/driverlib/m0p/dl_interrupt.h> #include "ti_msp_dl_config.h" #include "bspRGB.h" int main(void) { SYSCFG_DL_init(); while (1) { RgbFlowLED(); } }
下载观察现象: