Energia使用入门 MSP432P402R

  • 写在前面的话
  • Energia IDE
  • 编程方法
  • 对Arduino的偏见
  • Energia的缺点
  • 基础操作之I2C基础读写(以读取ID为例)
  • 实现程序
  • Energia的优势

写在前面的话

因为要参加TI杯电赛所以开始学习使用德州仪器的MSP432P401R系列M4F单片机,无奈TI的库比较难读,队友也水平有限,所以就打算寻找一些简单快捷的编程方式(毕竟四天的比赛谁能写出高质量代码呢,快速且能用才是做重要的),而且我希望能对得起这个赞助厂家和参赛同学们,并不想搞那些夹层内藏Arduino板子的骚操作(据说还得了奖)。

等等。。。。MSP432能不能用Arduino编程呢?于是我找到了这样一款软件

Energia IDE

软件官网链接: https://energia.nu/
软件为绿色软件,无需安装
自带MSP430系列支持包,MSP432系列等支持包需要在线安装并且有墙
相信玩过Arduino的同学一定不陌生这个外形(其实就是Arduino改了名字和颜色)

官网介绍:
Energia是罗伯特·韦塞尔斯(Robert Wessels)于2012年1月启动的开源电子原型平台,目标是将Wiring和Arduino框架引入基于Texas Instruments MSP430的LaunchPad。 Energia IDE是跨平台的,并且在Mac OS,Windows和Linux上受支持。 Energia使用Peter Bigot的mspgcc编译器,并且基于Wiring和Arduino框架。 Energia包含一个集成的开发环境(IDE),该环境在Processing IDE中具有基础(Processing→Wiring→Arduino→Energia)。 Energia还是一个可移植的框架/抽象层,可以在其他流行的IDE中使用。通过dev.ti.com上的Texas Instruments CCS Cloud或TI功能强大的CCS Desktop IDE,利用基于Web浏览器的环境。

Energia和Arduino的基础是由Hernando Barragan开发的Wiring框架。该框架经过精心设计,并牢记设计师和艺术家的精神,以鼓励社区中来自世界各地的初学者和专家分享想法,知识和他们的集体经验。 Energia团队采用边做边学的理念,并努力使直接使用硬件变得容易。 Energia为微控制器带来的易用性使专业工程师,企业家,制造商和学生都能从中受益。

Energia最初将Wiring和Arduino框架引入了德州仪器(TI)MSP430 LaunchPad。德州仪器(TI)提供了MSP430,MSP432x,TM4C,C2000,CC32xx和CC13xx LaunchPad。 LaunchPad是德州仪器(TI)生产的低成本微控制器板。 Energia的最新版本支持大多数LaunchPad产品。

LaunchPad与Energia一起可用于开发交互式对象,从各种开关或传感器获取输入,并控制各种照明,电机和其他物理输出。 LaunchPad项目可以是独立的(仅在目标板上运行,即您的LaunchPad),也可以与计算机(主机PC)上运行的软件通信。您还可以添加无线模块,以支持通过各种类型的RF进行通信,包括Wi-Fi,NFC,蓝牙,Zigbee,蜂窝等。

可以在TI网站上找到有关LaunchPad的更多信息:www.ti.com/launchpad
来自谷歌翻译
Github:https://github.com/energia/Energia
Energia可以说是Arduino的一个分支,只支持TI的板子

编程方法

与Arduino完全相同,大家可以去看Arduino的教程视频

对Arduino的偏见

我最开始入门的单片机是51,依靠大学那点C语言基础自学。看了很多开发板配套的教程感觉质量不差,就是老掉牙了,大部分都是89C52时代的产物,急需一些新东西!现在都2020年了,STC都有硬件I2C和USB了,可惜没人教。
所以我想推荐STC15系列的手册给入门的同学(12系列写的很乱,8系列有些基础的东西没有)。教学视频可能看不懂,读手册一定是一目了然。
关于对Arduino的偏见,我确实有。我觉得Arduino的程序就是一间彩钢房,一切都是预制好的程序零件,像是积木。
但我承认,Arduino的底层程序确实写的很好。我并不认为Arduino是玩具,但如果你想要一间精致的房子,还是C和汇编好一些。
我的认识是,Arduino更像是一个操作系统,用户程序就像任务进程一样运行,开放给用户的是一个状态机。

Energia的缺点

  1. 教程、资源少之又少
    基本只有43oh之类的论坛有比较深入的讨论,Arduino社区只有冷清的几个提问,但这一切的有限的活跃都开始且结束在几年前,现在更是没几个人用。
  2. 库太少且和Arduino不通用
    只有个位数的官方库,连SSD1306 OLED的库都没有,但是和Arduino不通用是最大的缺点。移植对新手来说很不友好,编译器的报错功能太简陋
  3. 开发板贵
    其实也不算缺点(因为根本没人买),竞赛可以免费申请,其他途径基本没人会买
  4. 编辑器相当简陋
    这算是继承了Arduino的缺点,以后大概率会制约Arduino平台的发展

基础操作之I2C基础读写(以读取ID为例)

关于Arduino的基础程序这里就不再赘述,Arduino和Energia官网都可以找到

这里我的板子是MSP432P401R,以后也是

  1. 首先找到I2C端口,连接好MSP432开发板和FDC2214开发板的I2C的线


    上面两张图片来自Energia官网

注意:官方的图I2C口顺序标反了,1号口其实才是默认口

这里我们使用默认I2C口(即P6_5和P6_4),3.3v给2214供电,并且共地
至于其他端口功能都写得很详细,大家可以自己尝试

实现程序

#include<Wire.h>  //基础的I2C库void setup()
{Serial.begin(9600);  //选择默认串口0,直连调试器的虚拟串口,波特率9600Wire.begin();  //选择默认口0,主机模式不填地址
}void loop()
{Serial.println("satrt");  //串口发出startSerial.flush();  //等待串口发送完毕uint16_t data;//接收的两字节数据Wire.beginTransmission(0x2A);  //请求对地址为0x2a的设备发送写数据请求//(会自动等待应答)注:FDC2214开发板不同,该地址可能为0x2bWire.write(0X7E);  //发送要读的寄存器地址,就是2214手册里的MANUFACTURER_IDWire.endTransmission(false); //结束发送,自动发送停止信号,不会发送下一次的开始信号delay(2);  //等一下Wire.requestFrom(0X2A,2);  //请求对地址为0x2a的设备发送读2个字节数据请求//(同样会自动等待应答)注:等待应答时程序会停下等待while (!Wire.available());//如果收到数据,就先读一个字节(读完数据就消失)data = Wire.read();  //存进去data <<= 8;  //移动8位,给下一个字节腾位置while (!Wire.available());  //又检测到发过来一个字节的数据了,data |= Wire.read();  //在读Wire.endTransmission(false); //发出终止信号Seria.println(data,HEX); //串口以16进制发送出刚才I2C口读到的数据Seria.println("end");  //串口发出enddelay(1000);  //延时一秒,进入下一次循环
}

串口数据

0x7e位置的数据正是0x5449

读数据成功,程序重复执行,无输出的同学可以检查接线,直到有输出为止
该寄存器值可以在初始化之前读取,确定FDC2214电路是否正常连接,以及芯片是否正常工作。

Energia的优势

使用Arduino开发相比CCS、Keil、IAR等用SDK库开发确实比较简单也简陋,但是对学习过的同学非常友好,没有学习过的同学也可以很快掌握,特别对电赛这种限时的比赛用处比较大,以后可能会有很多竞赛的同学使用。

参考的程序: https://github.com/zharijs/FDC2214

Energia使用入门 总体介绍和I2C的使用-基于MSP432P402R相关推荐

  1. RISC-V E300 SOC架构介绍——1.总体介绍

    0.基于RISC-V SOC平台的总体介绍: E300平台是SiFive公司Freedom Everywhere系列的第一个可定制的RISC-V SoC. E300 SoC包括一个SiFive系列 R ...

  2. 自己动手写一个推荐系统,推荐系统小结,推荐系统:总体介绍、推荐算法、性能比较, 漫谈“推荐系统”, 浅谈矩阵分解在推荐系统中的应用...

    自己动手写一个推荐系统 废话: 最近朋友在学习推荐系统相关,说是实现完整的推荐系统,于是我们三不之一会有一些讨论和推导,想想索性整理出来. 在文中主要以工程中做推荐系统的流程着手,穿插一些经验之谈,并 ...

  3. 基于DDD的现代ASP.NET开发框架--ABP系列之1、ABP总体介绍

    点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之1.ABP总体介绍 ABP是"ASP.NET Boilerplate Project (ASP.NET样 ...

  4. KubeOperator总体介绍(K8S集群部署管理工具)

    总体介绍⚓︎ KubeOperator 是一个开源的轻量级 Kubernetes 发行版,专注于帮助企业规划.部署和运营生产级别的 Kubernetes 集群. KubeOperator 提供可视化的 ...

  5. 代码检查规则背景及总体介绍

    中秋小长假结束,放松过后的你准备好新一轮的学习了吗?端坐小板凳开始study吧! 今天为大家带来的课程是<代码检查规则背景及总体介绍>,将从代码检查的意义.代码检查场景及工具.代码检查规则 ...

  6. 实时计算 Flink 版总体介绍

    简介:实时计算 Flink 版(Alibaba Cloud Realtime Compute for Apache Flink,Powered by Ververica)是阿里云基于 Apache F ...

  7. java开发和基于asp.net开发有什么优越性?_java语言的入门开始介绍

    java编程语言是目前世界最流行的编程语言,它是在c++的基础上开发出来的语言,它取其精华去其糟粕让java语言具有功能强大和简单易用的特征. java具有:面对对象.分布式.健壮性.安全性.平台独立 ...

  8. FPGA入门基础介绍

    1.1 FPGA入门基础介绍 1.1.1 本节目录 1)本节目录: 2)本节引言: 3)FPGA简介: 4)FPGA入门基础介绍: 5)结束语. 1.1.2 本节引言 "不积跬步,无以至千里 ...

  9. HelloWorld Detail Earth 3D Engine(一)总体介绍

    HelloWorld Detail Earth 3D Engine(一)总体介绍 一 简介 HelloWorld Detail Earth3D Engine 拥有数字地球的基本功能和架构,同时拥有3D ...

最新文章

  1. 花了3个月整理的超级全面的Python资料和Java面试题,分享给大家!
  2. 【转】Android 快捷方式的创建
  3. arm 架构_ARM发布A78增强版大核架构:性能怪兽
  4. 小程序支付成功后跳转页面失败
  5. 花生壳内网穿透实践指南
  6. IPOP-CMA-ES:一种重启CMA-ES
  7. gsp计算机设施设备表格,GSP计算机系统内审表
  8. 在 word 中加入 Mathtype 公式编辑器 解决办法
  9. 【springcloud问题】Could not locate PropertySource and the fail fast property is set, failing
  10. 2021年美容师(初级)考试总结及美容师(初级)模拟试题
  11. 特斯拉Q4财报:底部反弹70%,为信仰打call
  12. VC++操作Excel生成饼状图!
  13. tun驱动之tun_init
  14. (附源码)小程序springboot口腔诊所预约系统 毕业设计 201738
  15. 曾经写过得太监小说4《无名》
  16. 几种奥比中光SDK的功能说明以及使用方法
  17. JavaScript前端批量下载图片文件打包下载
  18. 2020年中国建筑防水行业市场现状及竞争格局分析,龙头企业跨区布局加速,尾部出清加快「图」
  19. Linux 的各种 signal
  20. 单片机:什么是看门狗?

热门文章

  1. mysql报错系列持续整理1064 - You have an error in your SQL syntax;...near...
  2. Ubuntu输入法切换问题
  3. 2019IDEA加载了但新建中无法找到VUE组件的问题
  4. SVN Working Copy xxx locked ,并且进行cleanup也还是不行
  5. Simscape Mutibody Modeling学习--移动多体模型中的物体(2)
  6. C# 设计模式:行为型
  7. always @ (*)
  8. 【工业大数据】大数据驱动的智能车间运行分析与决策方法体系
  9. 震惊!编写“爬虫”,怎么“面向监狱编程”了?
  10. 攻防世界_MISC之碎纸机11