本帖最后由 tlled 于 2020-4-16 23:23 编辑
一、搭建环境
MSP432P401R支持 CCS、KEIL和IAR开发环境,这里我选择KEIL开发环境。
1.1、首先下载MSP432P401R开发板的软件SDK包 SDK包链接
1.2、安装SDK包后,就可以使用里面的工程文件了。里面有几种编译环境的工程,我这里选择KEIL工程文件。
1.3、打开工程文件后,编译程序,看是否有报错
编译成功,没有报错,KEIL开发环境正常使用。
二、GPIO 驱动LED灯
2.1、LED硬件电路
使用了GPIO的P1.0和P2.0,P2.1,P2.2
2.2、程序
根据SDK的工程文件,截取自己的项目工程文件,并编写驱动程序。
主要的程序如下:
2.2.1、led.c
- #include "config.h"
- void LED_Init(void)
- {
- GPIO_setAsOutputPin( GPIO_PORT_P1, GPIO_PIN0 ); //P1.0
- GPIO_setAsOutputPin( GPIO_PORT_P2, GPIO_PIN0 ); //P2.0
- GPIO_setAsOutputPin( GPIO_PORT_P2, GPIO_PIN1 ); //P2.1
- GPIO_setAsOutputPin( GPIO_PORT_P2, GPIO_PIN2 ); //P2.2
-
- led2_r_off();
- led2_g_off();
- led2_b_off();
- }
2.2.2、led.h
- #ifndef LED_H_
- #define LED_H_
- #define led1_off() GPIO_setOutputLowOnPin(GPIO_PORT_P1, GPIO_PIN0)
- #define led1_on() GPIO_setOutputHighOnPin(GPIO_PORT_P1, GPIO_PIN0)
- #define led1_tog() GPIO_toggleOutputOnPin( GPIO_PORT_P1, GPIO_PIN0 )
- #define led2_r_off() GPIO_setOutputLowOnPin(GPIO_PORT_P2, GPIO_PIN0)
- #define led2_r_on() GPIO_setOutputHighOnPin(GPIO_PORT_P2, GPIO_PIN0)
- #define led2_r_tog() GPIO_toggleOutputOnPin( GPIO_PORT_P2, GPIO_PIN0 )
- #define led2_g_off() GPIO_setOutputLowOnPin(GPIO_PORT_P2, GPIO_PIN1)
- #define led2_g_on() GPIO_setOutputHighOnPin(GPIO_PORT_P2, GPIO_PIN1)
- #define led2_g_tog() GPIO_toggleOutputOnPin( GPIO_PORT_P2, GPIO_PIN1 )
- #define led2_b_off() GPIO_setOutputLowOnPin(GPIO_PORT_P2, GPIO_PIN2)
- #define led2_b_on() GPIO_setOutputHighOnPin(GPIO_PORT_P2, GPIO_PIN2)
- #define led2_b_tog() GPIO_toggleOutputOnPin( GPIO_PORT_P2, GPIO_PIN2 )
- void LED_Init(void);
- #endif
2.2.3、main.c
- #include "config.h"
- int main(void)
- {
- uint32_t i;
- // Stop watchdog timer
- WDT_A_hold(WDT_A_BASE);
- LED_Init();
- while(1)
- {
- led1_on();
- for(i=100000; i>0; i--);
- led1_off();
- for(i=100000; i>0; i--);
-
- led2_r_on();
- for(i=100000; i>0; i--);
- led2_r_off();
- for(i=100000; i>0; i--);
-
- led2_g_on();
- for(i=100000; i>0; i--);
- led2_g_off();
- for(i=100000; i>0; i--);
-
- led2_b_on();
- for(i=100000; i>0; i--);
- led2_b_off();
- for(i=100000; i>0; i--);
-
- }
- }
2.3、工程文件
三、程序执行结果
led1和led2指示灯顺序点亮。
|