MSP432入门——编译环境搭建

发布者:tmgouzi最新更新时间:2020-04-18 来源: eefocus关键字:MSP432  编译环境 手机看文章 扫描二维码
随时随地手机看文章

0x01.目录

节目录

0x00.章索引

0x01.目录

0x02.概述

0x03.正式开始前...

非专业“教程”

SimpleLink MCU SDK

TI drivers 与 driverlib

0x04.工具与环境

0x05.开发环境的搭建

0x06.大功告成


0x02.概述

MSP432 系列 MCU 属于低功耗、高性能的微控制器。这个系列产品是 TI 的 MSP 低功耗微控制器系列中的产品, 本系列文章将通过使用TI drvers对MSP432P401R进行一些简单的开发。


本人接触过的MCU算不上多,之前大多数时间都在和STM32打交道,大学四年经历了两次电赛,都没有用上MSP432系列的单片机。这次偶然间由于一个项目需要接触到这款芯片实在让我吃足了苦头,感触特别深的一点就是对于这种相对小众、新兴的MCU(或许是我坐井观天了),网上的参考资料的缺失真的大大增加了开发难度,同时也侧面印证了我对于单片机原理还是不够熟悉。所以将开发MSP432的过程记录了下来,给后来者对于MSP432系列的单片机的开发尽一份绵薄之力~


0x03.正式开始前…

在对MSP432系列单片机进行正式开发时,开发者需要知道以下几个概念:


非专业“教程”

本人目前还是在校大四狗一枚,与其说这是一篇教程,不如说这是一篇自己开发MSP432的心得,叙述过程中难免会有问题,麻烦大家多指正。


SimpleLink MCU SDK

SimpleLink MCU SDK在官方中文文档中的定义:


SimpleLink™ 微控制器 (MCU) 软件开发套件 (SDK) 是一整套经过验证、配备全套文档的驱动程序、堆栈和代码示例,使工程师能够使用德州仪器 (TI) 的 SimpleLink 联网MCU 系列开发创新和差异化的应用。


我们可以将它理解为一套兼容性极强的HAL库,开发者可以在CCS通过访问"View-Resource Explorer"直接访问与下载这套SDK的最新版本,也可以直接在浏览器中访问TI Resource Explorer实现在线对SDK文档的查阅等操作。通过阅读SDK的说明文档,开发者甚至可以在没有看过该MCU的用户指南的前提下,直接调用该SDK提供的API,实现对MSP432的简单编程与应用。


TI drivers 与 driverlib

在开发者下载了MSP432的SDK后,不难发现,在SDK的目录下,TI提供了两套不同的库文件,名字分别为"TI drivers"与"driverlib",那么TI为什么提供给开发者两套不同的库呢?经过我一边阅读两种库的说明文档与在网络上查阅资料,能够得到以下结果:


TI drivers or driverlib. Which one should I use?

what is the difference between #include UART.h> and #include ??

CCS: is ti driver a wrap over driverlib

以上三个链接均是在TI的官方论坛中找到的类似问题(博主英文也不好,但是实在找不到相关的中文资料与说明),通过以上链接中帖子底下的回答,我们可以得到以下结论:


TI drivers库的可移植性更强,比driverlib库更加抽象

一般在RTOS中使用TI drivers

使用TI drivers时可能有一些功能单靠这个库给出的API是无法实现的,这时候我们不得不选择直接对寄存器进行访问或改用driverlib

由于driverlib相对于TI drivers更为底层,所以有一些TI drivers独有的功能(例如回调函数)需要使用driverlib的开发者结合MCU的中断函数进行手动实现

附上TI drivers or driverlib. Which one should I use?中TI工作人员的一段解答:


There is a fair amount of work done to abstract you from having to know the driver library calls or the register level programming. Today, I believe that the driverLib gives you almost complete access to the device functionality. We are continuing to work and develop the TIDrivers to reach that same level of access.


根据以上了解的情况,我决定选用TI drivers进行项目开发(CSDN以及其他各大中文电子论坛中,关于MSP432开发的大部分内容都是基于driverlib或寄存器,没有足够的参考资料让我走了许多弯路,这也是促进我记录关于使用TI drivers开发MSP432 MCU的原动力)


0x04.工具与环境

CCS IDE 10.0.0 或以上版本

MSP432 SDK 本文章使用SDK版本为3.40.00.05

MSP432P401R LaunchPad

VS Code 非必需 TI官方推荐使用的CCS没有代码自动补全功能,用起来实在是一言难尽


0x05.开发环境的搭建

在下载了CCS与MSP432的SDK后,安装CCS,这一步就不展开说明了

打开CCS,在菜单栏选择"Window–Preferences–Code Composer Studio–Products-Install",然后在弹出的文件浏览框中选择SDK的安装路径

在CCS中安装SDK

在CCS的菜单栏中选择"View-Resource Explorer",访问TI的SDK资源

选中"Software/SimpleLink MSP432P4 SDK/Examples/Development Tools/MSP432P401R LaunchPad - Red 2.x(Red)/TI Drivers/"目录中的"display"工程,我们可以看到在工程说明文档的摘要中的说明:

Uses the Display driver to write output via the XDS100UART and the available LCD display.


由此可知,通过该例程,我们可以使用XDS100UART传输数据到PC中。我们将工程作为测试编译环境的示例工程,进行编译测试,如下图所示导入工程

从Resource Explorer中导入工程

导入工程后,尝试使用快捷键"Ctrl+B"对该工程进行编译

若编译结果存在"msp.h"头文件缺失的error,需要进行如下配置:

手动将"SDK目录/source/ti/devices/msp432p4xx/inc"文件夹复制至工程目录下

选中CCS中Project Explorer栏中的display…工程,“右键-Properties-CCS Build-ARM Compiler-Include Options"在右边的配置框中,添加”${PROJECT_ROOT}/inc"

工程包含路径配置

选择"Properties-CCS Build-ARM Compiler-Predefined Symbols"在右边的"Pre-define NAME"配置框中,添加"_MSP432P401R_"

预编译头配置

再次编译,没有遇到问题(至少我电脑的环境是这样),连接LaunchPad,点击工具栏的Flash按钮进行程序烧录

烧录程序

烧录后,点击菜单栏"View-Terminal"并打开XDS100的串口通道(Serial port不同的电脑不一定相同)

打开串口

如果不出意外,现在就能够在打开的串口接收界面中得到MCU发给PC的LED状态数据,符合工程说明文件所述现象


Run the example.

A splash screen will be displayed on the LCD and the string “Hello Serial!” on UART

CONFIG_GPIO_LED_0 is toggled periodically

The state of LED0 is output periodically on the UART and the LCD

串口接受数据

0x06.大功告成

至此,MSP432的编译环境搭建完成!

关键字:MSP432  编译环境 引用地址:MSP432入门——编译环境搭建

上一篇:msp432 launchpad的硬件电路介绍
下一篇:【MSP430】定时中断

推荐阅读最新更新时间:2024-11-09 04:17

MSP432(Keil5)——2.按键及外部中断驱动
本次按键实验是采用了板载的两个按键分别对应的P1.1与P1.4口,具体迁移到其他IO口的外部中断请移步原理图。 实验现象:按下按键会翻转板载LED灯状态。 key.c #include key.h void Key_Init(void) { /* Configuring P1.1 as an input and enabling interrupts */ /*配置1.1口为上拉输入*/ MAP_GPIO_setAsInputPinWithPullUpResistor(GPIO_PORT_P1, GPIO_PIN1); /*清除IO口的中断标志位*/ MAP_GPIO_clearInt
[单片机]
<font color='red'>MSP432</font>(Keil5)——2.按键及外部中断驱动
NO.18 ADC的基本概念
  ADC,就是模拟量转换成数字量的一种器件,一种将自然界连续的信号转化成离散的电信号发送给设备。   在MSP432中,自带ADC14,一个14位的ADC,好像按照官方的说法这个ADC的速度比MSP430的速度快10倍。   具体ADC的内容数电书上都有,什么并联比较型啊,逐次逼近型啊之类,上网百度一下就有。   关于我们在MSP432中如何使用这个ADC呢,TIDrivers里有非常强大的库我们可以直接使用。      首先我们要了解几个概念:量程分辨率采样速率。调用十分简单 /* * ======== adcsinglechannel.c ======== */ #include stdint.h #
[单片机]
NO.18 ADC的基本概念
基于MSP432的中断练习
/* MSP432: 基于寄存器编程:利用P1.1和P1.4引脚外部中断,实现对LED灯亮灭的控制。 P1.1和P1.4引脚连接S1和S2按键,该按键按下将触发引脚中断,P2.1和P2.2引脚分别连接连个LED灯,当按键P1.1被按下后,P2.1引脚LED灯的亮灭状态将会发生翻转,当按键P1.4按下后,P2.2引脚的电平将发生翻转。 */ //中断服务程序 extern void PORT1_IRQHandler(void) { if(P1IFG & BIT1) { P2OUT ^= BIT1; P1IFG &= ~BIT1; } if(P1IFG & BIT4) { P2OUT ^=
[单片机]
基于<font color='red'>MSP432</font>的中断练习
gentoo stm32 交叉编译环境
crossdev -t s4 --gcc =5.4.0 -v arm-none-eabi gcc版本为当前系统安装的版本,通过gcc -v 可以获得 编译完成后: arm-none-eabi-addr2line arm-none-eabi-elfedit arm-none-eabi-gcc-ranlib arm-none-eabi-ld.gold arm-none-eabi-size arm-none-eabi-ar arm-none-eabi-emerge arm-none-eabi-gcov arm-none-eabi-nm arm-none-eabi-strings arm-none-ea
[单片机]
arm-linux,arm-elf-交叉编译环境下载地址
最常用的编译版本是arm-linux-gcc-3.4.1 和 arm-linux-3.3.2 的,现在的嵌入式开发基本上用的是这些,3.4.1的用于编译2.6的内核,而3.3.2的常用于编译busybox,和bootloader(u- boot),编译的版本配合不好的话就会出错,所以要选择好编译版本,如果这个版本不行的话,可以试试其他的版本,在uclinux上用的多的就是 arm-elf-tools-20030314 http://www.handhelds.org/download/projects/toolchain/arm-linux-gcc-3.4.1.tar.bz2 http://www.handhelds.org/do
[单片机]
MSP432的ADC模数转换
ADC相关知识 ADC 传感器(温度、压力、流量等模拟量)- A/D- 处理量(数字量)- 显示设备 能够将模拟量转换为数字量的器件称为模数转换器,简称A/D转换器或ADC。 传感器(温度、压力、流量等模拟量)- A/D- 处理量(数字量)- D/A- 执行部件(模拟量控制) 能够将数字量转换为模拟量的器件称为数模转换器,简称D/A转换器或DAC。 ADC和DAC是沟通模拟电路和数字电路的桥梁,也可称之为两者之间的接口 模/数转换概述 模数转换基本过程 在ADC转换过程中,因为输入的模拟信号在时间上是连续的,而输出的数字信号是离散的,所以ADC转换器在进行转换时,必须在一系列选定的瞬间(时间坐标轴上的一
[单片机]
<font color='red'>MSP432</font>的ADC模数转换
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved