0x00.章索引

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 <ti/drivers/UART.h> and #include <driverlib/uart.h> ??
  • 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.开发环境的搭建

  1. 在下载了CCS与MSP432的SDK后,安装CCS,这一步就不展开说明了
  2. 打开CCS,在菜单栏选择"Window–Preferences–Code Composer Studio–Products-Install",然后在弹出的文件浏览框中选择SDK的安装路径
  3. 在CCS的菜单栏中选择"View-Resource Explorer",访问TI的SDK资源
  4. 选中"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中。我们将工程作为测试编译环境的示例工程,进行编译测试,如下图所示导入工程

  1. 导入工程后,尝试使用快捷键"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入门——编译环境搭建相关推荐

  1. 客制化键盘编程_客制化键盘QMK固件入门-编译环境搭建

    客制化键盘,这是一个巨大的坑,形形色色的轴体.外壳.PCB.数据线.键帽.灯效.音效甚至掌托,对于热爱DIY的玩家们来说,确实很吸引人,但再看看价格,只能打扰了. T站上看到了一款主要零部件用3D打印 ...

  2. MSP432编译环境搭建--KEIL版

    MSP432编译环境搭建--KEIL版 前言 一.KEIL5下载 二.安装步骤 1.安装芯片包 2.创建例程 (1)安装SIMPLELINK (2)直接找到官方所给例程 (3)使用例程 三.使用心得 ...

  3. Windows编译环境搭建(VS2010)

    引言:   本篇文章基于教程目的(由于windows和linux相关环境搭建篇幅过大,在博客中做这些讲解),主要描述Windows的发展历程和编译环境搭建(基于 Visual Studio 2010版 ...

  4. Java入门及环境搭建idea安装和简单使用

    Java入门及环境搭建 什么是Java Java Java是一门新的语言特点是: 语法有点像c 没有指针 没有内存管理 真正的可移植性,编写一次,到处运行. 面向对象 类型安全 高质量的类库 - Ja ...

  5. 乐鑫Esp32-S2学习之旅① 入门 ESP32-S2 环境搭建 ,分享如何直连苹果智能家居 HomeKit 平台,轻松语音 Siri 控制!

    本系列博客学习由非乐鑫官方人员 半颗心脏 潜心所力所写,不做开发板.仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 基于乐鑫ESP32 芯片模组 C SDK二次开发的技 ...

  6. 【ZT】MTK X20编译环境搭建 烧写安卓固件详细教程

    http://jingyan.eeboard.com/article/75888 MTK X20编译环境搭建 MTK X20编译环境搭建 作者: lgkgkfg 上传时间为: 2017-04-17 1 ...

  7. 【Java全栈学习笔记:第一阶段:JavaSE】:Java入门及环境搭建

    Java全栈课程网站: KuangStudy JavaSE课程地址: 狂神说Java 参考书籍:Java大学实用教程(第四版) 目录 Java入门及环境搭建 Java帝国的诞生 Java发展 Java ...

  8. Java入门与环境搭建

                                                                                         Java入门与环境搭建 软件 ...

  9. Runtime编译环境搭建

    Runtime编译环境搭建 首先,需要准备的资源:runtime完整源码,这个可以在苹果开放资源网页找到.点进这个页面,接着点击macOS下面的最新版本,在新页面中command+f搜索objc即可找 ...

最新文章

  1. 寄存器和常用的汇编指令
  2. 看完这篇学会Ansible
  3. 2020 中国技术力量年度榜单
  4. SQL技巧(多行合并一列)
  5. python 判断字符串是否为空用什么方法?
  6. 你了解的工厂模式可能有误
  7. moss 自定义文档库文档图标
  8. MyEclipse的破解
  9. Linux环境下编译运行大型C语言项目
  10. 大恒MER相机采集图像
  11. python中的yield是什么意思_python中yield指的什么意思
  12. Log4j 漏洞最早由阿里云团队发现;HashiCorp 挂牌上市,市值 152 亿美元;Go 1.18 Beta1 发布 | 开源日报
  13. 高德地图api接口免费查询天气实战案例,axios请求查询天气,js版,【接上一篇微信测试号推送纪念日】
  14. 百度广告屏蔽及游戏推广屏蔽
  15. 学渣的刷题之旅 leetcode刷题 26. 删除排序数组中的重复项
  16. PNP+NMOS用于充电的原理解释
  17. 【Linux系列】安装配置Nginx
  18. Win10中docker的安装与使用
  19. Maven 命令下载pom.xml的所有依赖库
  20. matlab对信号求导,符号函数的微分(求导)在Matlab中实现

热门文章

  1. java程序设计清考_面向对象程序设计(Java)-题库
  2. 5个最好的windows防火墙
  3. “大圣归来”的神运营
  4. 【Django】python后端的POST与GET请求
  5. SEO 基础知识? 2023学习SEO最佳指南
  6. 如何使用Submit创建HTML等文件--有图超详细
  7. 用html+css给女朋友写一个爱心
  8. Vue.js绑定class属性
  9. 群晖docker镜像源更换为阿里云镜像源
  10. 鸿蒙系统延期,华为P50Pro搭载鸿蒙系统正式亮相:3+1全新四摄,推迟到秋季发布...