关于MSP432E401Y入门指南(1 环境搭建&点亮一个led灯)

本文档详细介绍了如何使用Keil5搭建MSP432E401Y的开发环境,包括SDK下载、启动文件配置、源文件导入等步骤。同时,提供了工程模板的移植方法,帮助开发者快速创建自己的项目。文中还给出了一段简单的LED点亮代码,作为入门实践。
摘要由CSDN通过智能技术生成

关于MSP432E401Y入门指南(1 环境搭建&点亮一个led灯)

说明

  • 可以使用keil5和ccs开发,这里ccs使用不惯,因此采用keil5开发
  • 一个工程模板test,已经将启动文件、头文件和源文件添加进入

资料源

工程示例:链接:https://pan.baidu.com/s/1707PoqR2LP44s1vLjzPH4w
提取码:fghj
文档资料:链接:https://pan.baidu.com/s/1-GMRFdwazVyhh0X0NFi09A
提取码:utsx
Pack:链接:https://pan.baidu.com/s/1lPpLdrVs3TGVh5ob8Zja9w
提取码:ppa6
E4_SDK:链接:https://pan.baidu.com/s/1GFnti2RfJ97SyIHFn4pZ_Q
提取码:wpd0 (如果有需要P4 SDK请自行翻看上一篇)

问题解决

  1. MSP432E401YSDK下载,以下是TI官网的SDK下载地址
    https://www.ti.com.cn/tool/cn/SIMPLELINK-MSP432-SDK?keyMatch=MSP432E401Y
    安装SDK的方法请自己解决
  2. 板子开发所需要的Keil支持包DFP,在以下keil官网找ti对应板
    https://www.keil.com/dd2/Pack/#!#third-party-download-dialog
    共有两个:TexasInstruments.MSP432.1.0.2.pack
    TexasInstruments.MSP432E4_DFP.3.2.6.pack
  3. 一个工程模板的移植,在下面详解

移植模板

E4_SDK\simplelink_msp432e4_sdk_4_20_00_12\examples\nortos\MSP_EXP432E401Y\driverlib 一般在这个目录下是ti提供的msp432e4例程
但是会有一个缺陷,是引入的一个板子的开发库,里面只能查看头文件,不能查看源文件,对学习不利,除非习惯于arduino的开发模式
在这里插入图片描述
在这里插入图片描述
所以接下来自己配置一个工程模板,利于之后的开发

  • 在keil里新建一个工程,在我们安装了以下两个包之后
    TexasInstruments.MSP432.1.0.2.pack
    TexasInstruments.MSP432E4_DFP.3.2.6.pack
    就可以选择ti的msp432e401y的芯片
    在这里插入图片描述

  • 接下来点击在keil魔术棒的旁边的图案,新建几个工程文件夹,并且在main文件夹下添加main.c文件
    在这里插入图片描述

  • 之后任意找一个例程,将startup_msp432e401y_uvision.s也就是启动文件复制在自己工程目录下,然后导入source文件下
    接下来把E4_SDK\simplelink_msp432e4_sdk_4_20_00_12\source整个复制过来,大概300多M(这样导致工程占内存很大,正在尝试将其固定位置引入,减小空间占用),也是复制在自己工程目录下
    在keil魔术棒里导入头文件路径
    在这里插入图片描述

  • 然后就可以往include文件里导入各种自己所需的源文件,路径在source\ti\devices\msp432e4\driverlib中
    在这里插入图片描述
    在这里插入图片描述

    然后在keil里将Debug里修改为CMSIS-DAP Debugger,点击旁边的setting,Port可以任意,但是Max Clock一定要改为小于等于1MHz,然后会导致烧录失败

一个简单的点灯程序(所谓软件的Holle World)

#include "ti/devices/msp432e4/driverlib/driverlib.h"


#include <stdint.h>
#include <stdbool.h>

int main(void)
{
	uint32_t systemClock;
//	systemClock = 
	MAP_SysCtlClockFreqSet((SYSCTL_XTAL_25MHZ |
                SYSCTL_OSC_MAIN | SYSCTL_USE_PLL |
                SYSCTL_CFG_VCO_480), 120000000);

    // Configure the device pins.
    //
	SysCtlPeripheralEnable(SYSCTL_PERIPH_GPION);
	SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF);
	while(!SysCtlPeripheralReady(SYSCTL_PERIPH_GPION)){}
	while(!SysCtlPeripheralReady(SYSCTL_PERIPH_GPIOF)){}
	
	GPIOPinTypeGPIOOutput(GPIO_PORTN_BASE, GPIO_PIN_1);
	GPIOPinTypeGPIOOutput(GPIO_PORTN_BASE, GPIO_PIN_0);
	
	GPIOPinTypeGPIOOutput(GPIO_PORTF_BASE, GPIO_PIN_4);
	GPIOPinTypeGPIOOutput(GPIO_PORTF_BASE, GPIO_PIN_0);
	
    //
    // Initialize the UART.
    //
    while(1)
    {
      GPIOPinWrite(GPIO_PORTN_BASE, GPIO_PIN_1, GPIO_PIN_1);
			GPIOPinWrite(GPIO_PORTN_BASE, GPIO_PIN_0, GPIO_PIN_0);
			
			GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_4, GPIO_PIN_4);
			GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_0, GPIO_PIN_0);

        // Delay for a bit.
			for(systemClock = 0;systemClock<2000000;systemClock++);
//        SysCtlDelay(systemClock / 10 / 3);

        // Turn off D1.
      GPIOPinWrite(GPIO_PORTN_BASE, GPIO_PIN_1, 0x0);
			GPIOPinWrite(GPIO_PORTN_BASE, GPIO_PIN_0, 0x0);
			
			GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_4, 0x0);
			GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_0, 0x0);
			
        // Delay for a bit.
			for(systemClock = 0;systemClock<2000000;systemClock++);
//        SysCtlDelay(systemClock / 10 / 3);
    }
}

void SystemInit()//自定义一个SystemInit函数,函数体为空,这样错误即可消除
{
}
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值