本帖最后由 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、工程文件
msp432p401r.rar
(6.25 MB)
三、程序执行结果
led1和led2指示灯顺序点亮。
|