天南地北客
发表于: 2018-3-9 11:48:07 | 显示全部楼层

Getting-Started-with-MSP430G2-using-Energia-IDE–Blinking-an-LED.jpg


MSP-EXP430G2是德州仪器提供的开发工具,也称为LaunchPad,用于学习和练习如何使用其微控制器产品。该开发板属于MSP430 Value Line系列,我们可以对所有MSP430系列微控制器进行编程。这款美丽闪亮的红色主板因其属于TI(德州仪器)的事实而令人着迷。学习如何使用TI微控制器肯定会成为我们的强大工具,因为TI非常庞大,并且价格非常具有竞争力。


在本系列教程中,我们将了解这款MSP430G2 LaunchPad以及如何对其进行编程。使用这款LaunchPad,我们可以使用MSP430微控制器,它可以提供16位性能,运行频率高达16MHz。这些教程是为电子学初学者编写的,因此每个主题都应尽可能简洁。这些教程所需的硬件是一台普通计算机、MSP430 Value Line LaunchPad开发板以及其他基本电子组件,您可以在当地电子硬件商店轻松找到这些组件。那么,无需多讲,让我们一起深入了解其开发工具,然后查看包装箱中包含的内容以及如何使用它们。本教程结束后,我们将能够实现闪烁LED的功能。


MSP430G2 LaunchPad包含项目

当您从TI或任何其他本地供应商购买MSP430G2 LaunchPad开发工具时,您将获得包装箱中包含的以下项目。完整的项目也显示在下面的图片中。还要注意,这些项目和使用的时间相适应,因为2018年的早期版本和未来版本可能有不同的项目。

●    MSP-EXP430G2开发板

●    MSP430G2452和MSP430G2553微控制器

●    迷你USB电缆

●    晶体振荡器(32.7kHz)

●    快速入门指南

MSP430G2-LaunchPad-PartsMSP430G2-LaunchPad-Parts.jpg


MSP-EXP430G2开发板简介

下面图片所示的华丽的红色电路板就是MSP-EXP430G2开发板。该开发板可以对MSP430系列的TI微控制器进行编程。该开发板的主要目标是将代码从计算机上传到MCU,并从MCU读取串行数据以进行调试。它还引出了MCU的每个引脚,还提供两个LED和一个按钮,使开发变得轻松。自推出以来,该开发板已经发展了很多,下面显示的是MSP_EXP430G2 Rev1.5。

MSP430G2-LaunchPad.jpg


MSP430G2452和MSP430G2553微控制器

如前所述,MSP430开发板可用于对MSP430 Value系列的微控制器进行编程。但是,和开发套件一起,TI为我们提供了MSP430系列的两款微控制器,即MSP430G2452和MSP430G2553。两款都是20引脚DIP IC,性能不俗。默认情况下,MSP430G2553固定在开发板的IC插座上,MSP430G2452将单独提供。两个MCU的技术规格列表如下

MCU名称
技术规格
MSP430G2553
16kB Flash,512B RAM,16GPIO,2×16位定时器,看门狗定时器,欠压复位,1×USI(IIC / SPI / UART),8通道10位ADC,8通道比较器,电容式触摸IO模块
MSP430G2452 8kB闪存,256B RAM,16GPIO,1×16位定时器,看门狗定时器,欠压复位,1×USI(IIC / SPI),8通道10位ADC,8通道比较器,电容式触摸IO模块

从上表可以看出,MSP430G2553具有比另一个型号有更好的规格参数,它还具有UART模块,在使用Energia进行调试时非常方便。因此,在本系列教程中,我们将使用MSP430G2553来探索此开发套件的所有功能。


迷你USB电缆:

当程序上传完成后,迷你USB电缆用于将开发板连接到计算机,通过该电缆数据(以十六进制形式)从计算机流向开发板。在调试期间(串行监视器),来自MCU的数据将通过此电缆接收。

该电缆还为开发板提供电源,因此在上传程序后,您甚至可以使用移动充电器通过此电缆为您的开发板供电。


晶体振荡器:

TI还提供一个32kHz微晶振荡器,和开发套件一起。该晶振可以焊接到电路板上,这完全可以自主选择。由于MSP430G2553具有16MHz的内部振荡器,这对我们来说应该足够了。


为您的开发板供电和测试

在我们开始任何事情之前,TI已经在您的MSP430G2553微控制器上上传了一个示例程序,所以让我们给开发板供电,并检查它是否正常工作。您可以通过迷你USB电缆为开发板供电,一旦完成,您应该注意到主板左下角的LED(红色和绿色)交替闪烁。然后可以按下连接到P1.3的按钮来检查内部温度传感器是否工作。是的,MSP2553有一个内部温度传感器,按下按钮后只需摩擦手指将其预热并放置在IC上,您可以注意到红色LED亮起以指示温度升高。非常棒!!是不是?好,现在让我们开始介绍软件环境。


用于MSP430 LaunchPad的编程软件(IDE)

德州仪器允许我们通过各种环境对其微控制器进行编程。官方是Code Composer Studio,俗称CCS。该软件也是免费的,但使用它需要微控制器的最基础的经验。

由于这一系列教程是针对初学者的,我们使用另一种名为Energia的开发环境。 Energia是一个开放源代码和免费的环境,使我们能够轻松对TI微控制器进行编程。 Energia的主要目标是使编程TI MCU与在Arduino中编程一样简单。所以Energia是支持德州仪器微控制器的Arduino的等效产品。使用过Arduino的用户一旦下载并启动Energia IDE,就会更加认同这一点。


下载并启动Energia IDE

如前所述,Energia是一个开源且免费的开发环境,可以从此下载链接下载。根据您的操作系统选择版本,对于Windows应该注意到一个ZIP文件正在下载。下载ZIP后,将其提取到您的首选位置并打开文件夹。您可以找到名为Energia的应用程序。启动它,它应该看起来类似下图。

Energia-Development-Software.png


Arduino用户不会感到惊讶,因为它可能看起来像你的Arduino IDE,打扮得像一个圣诞老人,看起来像Energia。 Arduino和Energia的相似之处在于它们都建立在称为处理器的平台之上。


闪烁MSP430G2上的LED

现在,我们已经准备好了硬件和软件,让我们尝试一下Energia的基本示例程序来闪烁板载的LED。在开始编程之前,我们必须知道MSPG2553 IC上每个引脚的引脚名称。因为我们将在编程开发板时使用这些名称。以下来自Energia网站的图片将帮助我们了解每个引脚的名称和功能。根据您的开发板的修订版本,图像可能会略有不同。

Blinking-an-LED-on-MSP430G2_0.jpg


保存这张图片,因为我们通过Energia编程我们的MSP430时,将一直需要它。

跳转到指定楼层
天南地北客
发表于: 2018-3-9 14:00:47 | 显示全部楼层

理解Blink示例程序

让我们从示例闪烁程序开始,该程序闪烁LED1(红色),连接到单片机P1.0引脚。开发板上的LED及其标记如下图所示。

MSP430G2-LaunchPad-LED-terminal.jpg


要打开此示例程序,请导航到File->Example->Basics-> Blink,如下所示:

Program-Example-for-MSP430G2-LaunchPad.png

然后以下程序将出现在您的IDE中。

  1. #define LED RED_LED
  2. // the setup routine runs once when you press reset:
  3. void setup() {               
  4.   pinMode(LED, OUTPUT);     // initialize the digital pin as an output.
  5. }
  6. // the loop routine runs over and over again forever:
  7. void loop() {
  8.   digitalWrite(LED, HIGH);   // turn the LED on (HIGH is the voltage level)
  9.   delay(1000);               // wait for a second
  10.   digitalWrite(LED, LOW);    // turn the LED off by making the voltage LOW
  11.   delay(1000);               // wait for a second
  12. }
复制代码

让我们把上面的代码逐行分解,看看它的实际意义,但在此之前,让我们了解Energia的基本编程结构。每个Energia程序都有两个强制函数,它们是void Setup()void Loop()


void Setup()中存在的代码将只执行一次,void Loop()中的程序将永远执行。所有的引脚声明和初始化都将在Setup()内完成,并且必须永久执行的主程序将写入void Loop()中。您可以将void Loop()视同while(1)(无限while循环)。考虑到这一点,让我们开始逐行探索以上代码。


该程序的第一行称为宏。 Energia IDE足够聪明,可以理解RED_LED、GREEN_LED、TEMP_SENSOR等词汇。这些只不过是硬件连接到的引脚的名称。这是可能实现的,因为红色LED和绿色LED在我们的电路板上是硬件连线的,因此与其连接的MCU引脚已知。为了编程的舒适性,我们使用了一个宏,它表示,在程序中,通过使用#define,我将只使用“LED”,代替使用“RED_LED”这个名称,如下面的行所示。

  1. #define LED RED_LED
复制代码

接下来我们介绍void setup()函数,该函数告诉MCU哪些引脚应该用作输入引脚,哪些引脚应该用作输出引脚。在程序中,我们只使用了一个LED,它是一个输出设备,所以我们声明它是一个输出引脚,如下所示:

  1. void setup() {               
  2.   pinMode(LED, OUTPUT);     // initialize the digital pin as an output.
  3. }
复制代码

pinMode()用于表示我要声明输入/输出引脚,然后我们在括号中说出引脚的名称和类型。这里引脚的名称是LED和引脚类型是OUTPUT。


我们可以通过很多方式调用一个引脚。在本例子中,我们使用#define宏将其命名为LED,但也可以使用其原始名称命名它。比如在示例中,LED连接到MCU的第二个引脚,该引脚的名称是P1.0,请参考上面的引脚输出图片来查看名称。因此,除了将它称为LED,我们也可以通过以下方式调用它:

  1. pinMode(LED, OUTPUT);     //Instead of this we can also
  2. pinMode(2, OUTPUT);     //Call by pin number
  3. pinMode(P1.0, OUTPUT);     //Call by pin name
复制代码

接下来让我们回到void Loop()函数。在这里,我们必须编写代码来闪烁LED。为了使LED闪烁,我们必须将其打开,等待预先定义的时间,然后将其关闭并再次等待预定义的时间,并且再次循环。


要在Energia中打开或关闭引脚,我们必须使用digitalWrite()函数。在括号中,参数传递引脚的名称及其状态,如下所示:

  1. digitalWrite(LED, HIGH);   // turn the LED on (HIGH is the voltage level)
复制代码

这里的引脚名称是LED,状态为高电平,同样你也可以通过使用下面的状态LOW将其关闭

  1. digitalWrite(LED, LOW);    // turn the LED off by making the voltage LOW
复制代码

如前所述,该引脚的名称可以是LED、2或P1.0。所以其他形式类似于:

  1. digitalWrite(2, LOW); digitalWrite(P1.0, LOW);  
复制代码

这些形式也是可以的。


现在,我们已经学会了如何打开或关闭引脚。我们将学习如何使用delay()引入延迟。我们可以通过在括号内传递一个以毫秒为单位的值来指定延迟。

  1. delay(1000);               // wait for a second
复制代码

所以,让我们将所有这些组合到while循环中。我们应该打开LED等待1秒,然后关闭并再次等待1秒。这个周期应该永远持续。所以我们的程序将如下所示

  1. void loop() {
  2.   digitalWrite(LED, HIGH);   // turn the LED on (HIGH is the voltage level)
  3.   delay(1000);               // wait for a second
  4.   digitalWrite(LED, LOW);    // turn the LED off by making the voltage LOW
  5.   delay(1000);               // wait for a second
  6. }
复制代码

编译和上传您的Blink程序

下一步就是将这个程序上传到我们的MSP开发板。要做到这一点,只需使用提供的迷你USB电缆将开发板连接到电脑,并等待一段时间。电路板的驱动程序应该会自动开始安装。然后打开您的设备管理器,并在COM端口选项下,您应该看到您的开发板名称,如下所示

Connecting-MSP430G2-LaunchPad-to-PC.png


如果您未找到发现的开发板,请转到下面的Energia驱动程序链接并安装相应的驱动程序。

●    Windows

●    Mac OS X

●    Linux


一旦发现你的开发板,记下它连接的COM端口。我的开发板在这里连接到端口4。然后返回到Energia IDE并选择Tools -> Port并选择相同的端口,我选择了COM4。然后再次进入Tools -> Boards并选择MSP-EXP430G2553LP。一旦完成,您应该注意到Energia IDE右下角的以下内容。

Checking-port-for-MSP430G2-Launchpad.png


现在点击左上角的上传图标,并且您的程序应该开始上传到您的开发板。如果一切正常,您应该注意到IDE上显示的“完成上传”消息,如下所示

Uploading-Program-in-MSP430G2-LaunchPad.png


否则,您可能会遇到名为“无法找到与0451:f432匹配的设备”的常见错误。如果出现此错误,请参考下一步,否则请继续验证输出。


无法找到匹配0451:f432的设备[解决方案]:

这个错误在Energia IDE中很常见,但幸运的是,论坛主题上可以找到这个永久的解决方案。只需按照以下步骤操作即可。

1.    将<energia directory>\hardware\tools\DSLite\DebugServer\drivers\MSP430.dll复制到<energia directory>\hardware\tools\msp430\bin\

2.    编辑<energia directory>\hardware\energia\msp430\boards.txt,然后使用tilib字符替换2次出现的rf2500。

3.    重新启动energia,你应该可以上传到MSP-EXP430G2。


验证我们的闪烁输出

一旦程序上传完毕,您可以注意到您的开发板上的红色LED灯闪烁,其延迟时间为1000毫秒(1秒),和Energia IDE编程的一样,如下图所示。

MSP430G2-LaunchPad-in-action.jpg


希望您能够理解本教程并学习了一些有用的信息,如果您遇到任何困难,请随时在本帖下面回复或论坛发布您的问题,我很乐意为您提供帮助。


代码

  1. #define LED RED_LED
  2. // the setup routine runs once when you press reset:
  3. void setup() {               
  4.   pinMode(LED, OUTPUT);     // initialize the digital pin as an output.
  5. }
  6. // the loop routine runs over and over again forever:
  7. void loop() {
  8.   digitalWrite(LED, HIGH);   // turn the LED on (HIGH is the voltage level)
  9.   delay(1000);               // wait for a second
  10.   digitalWrite(LED, LOW);    // turn the LED off by making the voltage LOW
  11.   delay(1000);               // wait for a second
  12. }
复制代码
回复

使用道具 举报

玉水凉
发表于: 2019-3-27 12:57:41 | 显示全部楼层

请问用ilib改变rf2500的两个字符是什么意思呢?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题 26 | 回复: 45



手机版|

GMT+8, 2024-11-23 16:02 , Processed in 0.042300 second(s), 6 queries , Gzip On, MemCache On. Powered by Discuz! X3.5

YiBoard一板网 © 2015-2022 地址:河北省石家庄市长安区高营大街 ( 冀ICP备18020117号 )

快速回复 返回顶部 返回列表