最近在电赛培训网参加活动,中了一块TI的单片机开发板,具体型号为SimpleLink Ethernet MSP432E401Y Microcontroller LaunchPad。
这两天打算简单学一学这款单片机。
不得不说,网上关于MSP432单片机的资料是真的少,关于MSP432E4的资料更是少的可怜。
无奈只能从读TI官方给出的SDK和datasheet开始学习了。
开发环境的选择
MSP432可以采用keil,ccs,iar来进行开发,这里我选择了官方主推的ccs来进行学习。
从ti的官网下载ccs和MSP432E4的SDK,并将ccs和SDK配置好,之后就可以进行我们的开发了。
driverlib和tidriver
关于MSP432,官方的SDK中给出了两大类库,driverlib和tidriver.
driverlib更接近底层,能实现的功能也更加的丰富。
tidriver更加的抽象,也更容易理解和使用,更重要的是,tidriver可以采用图形化的操作来配置单片机的外设。
当然,tidriver的功能可能不是特别的完善,所以有时候也可以调用driverlib中的部分功能或者直接操作寄存器来实现某些功能,不过tidriver和driverlib的某些文件可能会产生冲突,这一点在使用时是需要注意的。
流水灯实验
SDK中提供了很多demo,我们可以直接通过导入demo的工程来进行开发,这里我们采用tidriver的工程来进行开发,对于初学者来说,图形化的外设配置相比于代码要容易好多。
首先我们打开css,导入一个tidriver库中的demo,随便挑选一个就可以。
- 导入工程
通过项目管理栏可以看出,工程中主要有两个c文件,main_nortos.c主要负责开发板的初始化启动,启动后跳转到gpiointerrupt.c中的mainThread函数中运行,这里我们不需要进行改动。
- mainnortos.c
gpiointertupt.c文件中有一个mainThread函数,我们要在mainThread函数中书写我们需要的用户代码。
外设的配置
打开资源管理栏后缀名为syscfg的配置文件,在其中配置我们需要使用的设备。
这里我们配置4个LED灯就可以。
- 图形化外设配置
保存之后,我们对外设的配置都会保存到ti_driver_config.c(.h)文件中.
- ti_driver_config.h
打开interrupt函数,删掉原有代码,编写我们需要的代码。
- interrupt.c
点击导航栏进行编译和烧录
- 编译和烧录
之后,就可以看到板子上的4个LED轮流点亮和熄灭了。
- 运行效果
部分源码
void delay(){
int i=0;
for(i=0;i<1000000;i++);
}
void *mainThread(void arg0)
{
/ Call driver unit functions /
GPIO_init();
/ Configure the LED and button pins */
GPIO_setConfig(CONFIG_GPIO_1, GPIO_CFG_OUT_STD | GPIO_CFG_OUT_LOW);
GPIO_setConfig(CONFIG_GPIO_2, GPIO_CFG_OUT_STD | GPIO_CFG_OUT_LOW);
GPIO_setConfig(CONFIG_GPIO_3, GPIO_CFG_OUT_STD | GPIO_CFG_OUT_LOW);
GPIO_setConfig(CONFIG_GPIO_4, GPIO_CFG_OUT_STD | GPIO_CFG_OUT_LOW);
while(1){
delay();
GPIO_toggle(CONFIG_GPIO_1);
delay();
GPIO_toggle(CONFIG_GPIO_2);
delay();
GPIO_toggle(CONFIG_GPIO_3);
delay();
GPIO_toggle(CONFIG_GPIO_4);
}
return (NULL);
}