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

共4条 1/1 1 跳转至

课程1任务1--LED实现红色、绿色、蓝色的循环显示

菜鸟
2024-05-03 14:45:20     打赏

本次主要是以自我提升的态度来参加本次TI的活动,自己在学校上课也在学习MSPM0系列单片机,感谢EEPW提供的这次机会,让我能够巩固拓展自己的知识。本次准备跟随着老师的脚步一步一步学习。本次使用的开发板是TI的MSPM0L1306开发板,使用的软件是CCS Theia,任务的目标是利用GPIO外设实现LED红色绿色蓝色的循环显示。

(一)原理图

从原理图分析可知

1.          需要配置3个GPIO外设为输出模式,即PA13,PA26,PA27。

2.          将引脚置为高即可使得LED灯点亮

3.          通过延时和引脚置低即可实现LED的交替循环显示

image.png


(二)sysconfig配置

syscfg是一个系统配置工具,用于配置和管理嵌入式系统的各种参数和设置。syscfg工具可以帮助开发人员在CCS中轻松地配置系统的各种参数,包括时钟设置、引脚配置、外设功能等。通过syscfg工具,开发人员可以直观地查看和调整系统的配置信息,以满足不同的应用需求。

1.       配置GPIO引脚  

先选择配置端口为PORTA,配置引脚号为132627,模式为输出模式,电平设置为低电平(cleared)。

 image.png


  然后可以点击编译,点击右上角芯片的图标image.png


,可以看到显示了已经配置的引脚image.png


同时在ti_msp_dl_config.h文件中自动生成引脚的宏定义

/* Port definition for Pin Group GPIO_GRP_0 */
#define GPIO_GRP_0_PORT                                                  (GPIOA)

/* Defines for PIN_0: GPIOA.0 with pinCMx 1 on package pin 1 */
#define GPIO_GRP_0_PIN_0_PIN                                     (DL_GPIO_PIN_0)
#define GPIO_GRP_0_PIN_0_IOMUX                                    (IOMUX_PINCM1)
/* Defines for PIN_13: GPIOA.13 with pinCMx 14 on package pin 17 */
#define GPIO_GRP_0_PIN_13_PIN                                   (DL_GPIO_PIN_13)
#define GPIO_GRP_0_PIN_13_IOMUX                                  (IOMUX_PINCM14)
/* Defines for PIN_26: GPIOA.26 with pinCMx 27 on package pin 30 */
#define GPIO_GRP_0_PIN_26_PIN                                   (DL_GPIO_PIN_26)
#define GPIO_GRP_0_PIN_26_IOMUX                                  (IOMUX_PINCM27)
/* Defines for PIN_27: GPIOA.27 with pinCMx 28 on package pin 31 */
#define GPIO_GRP_0_PIN_27_PIN                                   (DL_GPIO_PIN_27)
#define GPIO_GRP_0_PIN_27_IOMUX                                  (IOMUX_PINCM28)


(三)代码编写

使用两个库函数来实现GPIO的点亮,通过delay函数来进行延时,间隔为500ms(太短可能无法分辨出来,最好不要小于200ms,太大的等待时间太长。通过放在while里实现循环

 DL_GPIO_setPins()

 DL_GPIO_clearPins()

代码如下

#include "ti/driverlib/m0p/dl_core.h"
#include "ti_msp_dl_config.h"

int main(void)
{
    SYSCFG_DL_init();

    while (1) { 
    DL_GPIO_setPins (GPIO_GRP_0_PORT, GPIO_GRP_0_PIN_26_PIN);//
高电平,红灯亮
    delay_cycles(16000000);//1s为32MHZ,这里是延时500ms
    DL_GPIO_clearPins (GPIO_GRP_0_PORT, GPIO_GRP_0_PIN_26_PIN);
    delay_cycles(16000000);//1s为32MHZ,这里是延时500ms
  
    DL_GPIO_setPins (GPIO_GRP_0_PORT, GPIO_GRP_0_PIN_13_PIN);//高电平,绿灯亮
    delay_cycles(16000000);//1s为32MHZ,这里是延时500ms
    DL_GPIO_clearPins (GPIO_GRP_0_PORT, GPIO_GRP_0_PIN_13_PIN);
    delay_cycles(16000000);//1s为32MHZ,这里是延时500ms

 

    DL_GPIO_setPins (GPIO_GRP_0_PORT, GPIO_GRP_0_PIN_27_PIN);//高电平,蓝灯亮
    delay_cycles(16000000);//1s为32MHZ,这里是延时500ms
    DL_GPIO_clearPins (GPIO_GRP_0_PORT, GPIO_GRP_0_PIN_27_PIN);
    delay_cycles(16000000);//1s为32MHZ,这里是延时500ms
    }
}


 





关键词: 课程     任务    

高工
2024-05-03 21:00:52     打赏
2楼

谢谢分享


专家
2024-05-04 10:09:10     打赏
3楼

学习了


高工
2024-05-05 10:32:56     打赏
4楼

现在上课使用MSPM0,你们这也太紧跟时代了吧!?


共4条 1/1 1 跳转至

回复

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