历史上的今天
返回首页

历史上的今天

今天是:2024年12月29日(星期日)

2021年12月29日 | 使用Code Composer Studio开发MSP430入门指南 - 闪烁LED

2021-12-29 来源:eefocus

MSP-EXP430G2 LaunchPad是德州仪器(TI)提供的一款开发工具,用于学习和练习如何使用他们的微控制器。该开发板属于MSP430产品线系列,我们可以对所有MSP430系列微控制器进行编程。学习如何使用TI微控制器肯定会成为我们的强大工具,因为TI非常强大,并且具有众多的MCU可供选择,价格极具竞争力。


我们在以前的文章中已经详细介绍了如何使用Energia IDE开发MSP430微控制器。在本篇文章中,我们将介绍Code Composer Studio开发环境,以及如何使用它编程MSP430。本篇文章是为初学者编写的,除了MSP430开发板和计算机之外,不需要任何硬件。在本篇文章结束后,我们将学会使得MSP430控制器板载的LED闪烁。


MSP-EXP430G2开发板简介

下图中华美的红色板是MSP-EXP430G2开发板。该电路板可以编程属于MSP430系列的TI微控制器。该开发板的主要目的是将代码从计算机上传到MCU,并从MCU读取串行数据以进行调试。它还为MCU的每个引脚提供引脚输出,还提供两个LED和一个按钮,使开发变得简单。自发布以来,该开发板已经增强了很多功能,下面显示的是MSP_EXP430G2 Rev1.5。



MSP430G2553具有比其他微控制器系列更好的规格参数,它还具有UART模块,在使用Code Composer Studio进行调试时非常方便。因此,在本系列教程中,我们将使用MSP430G2553来探索此开发套件的所有功能。


开发板供电和测试

在我们开始之前,TI已经在MSP430G2553微控制器上上传了一个示例程序,所以让我们给电路板供电并检查它是否正常工作。您可以通过mini-USB接口为电路板供电,完成后,您应该注意到电路板左下角的LED(红色和绿色)交替亮起。然后,您可以按下连接到P1.3的按钮,检查内部温度传感器是否正常工作。MSP2553有一个内部温度传感器,在按下按钮后,只需用手指将其加热并将其加热到IC,您就会注意到红色LED指示灯亮起表示温度升高。很酷!!是不是??好的,现在让我们转向软件环境学习。


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

德州仪器允许我们通过各种环境对其微控制器进行编程。官方的是Code Composer Studio,通常称为CCS。该软件免费提供。此外,它只需要很少的控制器经验。不要担心我们将详细介绍CCS的每一步。


还有一个IDE可用于编写我们的程序,即Energia IDE。那么,CCS和Energia IDE有什么区别呢。我们已经在之前的文章中介绍了Energia IDE。


Energia IDE与Code Composer Studio

Energia是一个开源和免费环境,我们能够轻松地对TI微控制器进行编程。 Energia的主要目标是使编程TI MCU像在Arduino中编程一样简单。所以Energia是支持德州仪器微控制器的Arduino的等效产品。使用Arduino的人一旦下载并启动Energia IDE,就会对此有更多的了解。


Code Composer Studio(CCS)是一个功能更全面的专业IDE,在访问微控制器内部架构方面具有更多功能。它具有内置的调试功能,可以检查代码中的错误,您可以逐行运行代码,有助于发现错误而不会有任何麻烦。 CCS需要一段时间才能适应。一旦你使用这个很棒的软件设置,请相信我,你将了解该微控制器的任何信息。您必须借助微控制器的数据手册来编写程序。


如果您已学习过Arduino iDE或Energia IDE,请将您的开发环境更改为CCS,它是行业中要求最高的软件。


下载并启动Code Composer Studio

该软件可在德州仪器的网站上免费获得。因此,您可以从给定的链接下载链接下载。我们将使用Code Composer Studio V7,但您也可以下载最新版本,程序保持不变。



您可以使用Web安装程序下载整个软件,也可以下载安装程序/脱机安装程序。这个软件在1GB左右,所以你需要等到它下载完毕。

下载软件后,打开并安装。


当您单击Setup文件时,就像任何其他软件一样,您将被要求同意条款和条件并选择安装文件夹。之后,您必须选择要下载文件的开发板。在我们的例子中,我们使用MSP430 MCU,点击第一个选项。您可以下载多个电路板的文件。



下一个窗口是选择调试器。默认情况下,有一个选项可用,点击它并完成。现在,您的安装将开始,所以只需等到它完成。


安装完成后,它会询问工作区文件夹,因此选择要保存文件的文件夹,然后单击“OK”。



那么,让我们来看看我们将看到的第一个窗口。



这是一个简单的界面,您可以在其中看到Getting started菜单,您可以在其中开始创建项目,挨着Getting started有一个资源浏览器。这是该软件的一个很棒的功能,您可以在其中找到TI产品的每个细节,如数据手册、文档等。无需在Internet上查找数据手册,只需单击资源管理器并单击您想要的器件即可。之后,您可以查看有关该产品的每个细节。



在Code Composer Studio中创建第一个项目:闪烁LED

在CCS中创建项目

第1步 - 单击File -> New -> CCS project。如下所示:



第2步 - 接下来,您必须选择正在使用的MSP开发板。我正在使用MSP430G2553,我会选择如图所示。



为项目命名并单击“finish”。


单击完成后,将打开一个新窗口,其中一些行代码已写入其中。

在CCS中编写代码

让我们看看已经给出的代码的结构。第一行是我们的头文件,它取决于我们在创建项目时选择的目标型号。我使用的是MSP430G2553,因此将头文件重命名为

  1. #include


下一行是main函数。在main函数中,您将看到Watchdog看门狗定时器的初始化。 MSP430和其他基于TI的微控制器具有特殊类型的定时器,称为看门狗定时器。此定时器的工作原理是在微控制器开始挂起或停止响应时复位微控制器。在我们的代码中,我们不会使用到Watchdog计时器,因为它不属于初学者的方面。当我们开始使用微控制器时,看门狗定时器默认为ON,所以我们必须通过写以下代码来关闭这个定时器

  1. WDTCTL = WDTPW | WDTHOLD;


现在,我们可以编写代码以闪烁连接到P1.0的板载LED。还有另一个LED连接到P1.6。我们将只使用第一个LED。在了解闪烁程序后,您还可以编写用于切换这两个LED的代码。


首先,我们必须声明这些PINS,将它们用作INPUT或OUTPUT。


存在许多种用于控制PORTS的寄存器。因此,为了将PORT定义为INPUT或OUTPUT,使用PXDIR(X为端口号)(数据方向寄存器)寄存器。如果PXDIR为1,则其作为OUTPUT,0作为INPUT。我们的LED连接到端口1,所以我们写为P1DIR。


我们需要配置PIN 0,因为我们的LED连接到此PIN并且它是OUTPUT。每个端口有8位,我们希望Bit0为HIGH,使其成为OUTPUT。所以,我们将P1DIR指定为

  1. P1DIR = 0b00000001;它是二进制的,我们也可以用十六进制编写,即

  2. P1DIR = 0x01;


接下来,我们必须将特定端口的特定引脚设置为高或低。为此,我们必须使用P1OUT寄存器,1表示高电平,0表示低电平。最初,我通过将BIT0设置为1使其他LED保持为0来打开LED。

  1. P1OUT = 0b00000001;

  2. P1OUT = 0x01; //十六进制


由于MSP430没有内置的延迟功能,因此我们需要使用for循环来提供延迟时间。


因此,在下一步中,我们必须声明一个变量'i'用于延迟目的,可以写成

  1. Unsigned int i;


首先,我们将使PIN0为高电平,使用FOR循环产生一些延迟时间,之后在使PIN为低电平。通过这种方式,我们获得了闪烁的效果。程序如下:

  1. P1OUT=0X01;   //make bit0 HIGH

  2.         for(i=0;i<20000;i++){   //    delay till you make LED HIGH

  3.     }

  4.         P1OUT=0X00;   //make bit0 LOW


  5.         for(i=0;i<20000;i++){   // delay till you make LED LOW

  6.                }


您也可以用其他方式编写此代码。您可以使用BITWISE运算符来减少代码行。有OR、AND和XOR按位运算符可用。您可以使用XOR运算符(^)。当两个位都相等时,如1和1,0和0,XOR运算结果为1。我们这样写:

  1. P1OUT ^= 0x01;


相当于P1OUT = P1OUT xor 0b00000001;


因此,最初我们将P1OUT初始化为0b00000001,如果我们采用xor运算0b00000001,输出将为0b00000000意味着我们的LED将熄灭。在此之后我们加上for循环产生延迟。

  1. while(1)

  2.     {

  3.         P1OUT ^=0X01;   //toggle the bits


  4.         for(i=0;i<20000;i++){   // delay till you make LED LOW HIGH     

  5.   }

  6.     }


将代码上传到MSP430

完整的CCS程序在本文末尾处给出。我们的代码已准备好在MSP430中烧写。因此,使用USB线将MSP430开发板与笔记本电脑连接。


现在,我们必须编译/构建我们的代码,为此单击Project - > Build All。在窗口底部的控制台框中检查编译报告。它将显示“Build Finished”。


现在可以上传程序了。单击Run - > Debug。单击调试后,您将看到一个与省电相关的窗口,只需单击继续即可。在调试选项中,转到Run-> Resume。如果您的选项被清空,无需担心,请转到View-> Debug,然后再次转到Run-> Resume。


一旦调试代码,您的程序就会上传到MSP430开发板中。一种快捷方式是只需单击屏幕上的播放/暂停状态按钮即可。调试屏幕看起来如下所示

如果LED没有闪烁,那么请复位开发板或重新连接USB线。


通过以上操作,您可以在Code Composer Studio中编写一个简单的程序,使得MSP430板载的LED灯闪烁。


代码

本篇文章使用的完整代码如下所示:

  1. #include   // header file that depends upon your board


  2. /*

  3. * main.c

  4. */

  5. int main(void) {

  6.     WDTCTL = WDTPW | WDTHOLD;// Stop watchdog timer

  7.     P1DIR = 0X01;    //Declare PIN0 OF PORT 1 AS OUTPUT

  8.     P1OUT = 0X01; //MAKE PIN0 HIGH INITIALLY

  9.     unsigned int i;   //Delay variable

  10.     while(1)

  11.     {

  12.         P1OUT ^=0X01;   ////toggle the bits

  13.         for(i=0;i<20000;i++){   // delay till you make LED LOW HIGH      

  14.   }

  15. }

  16.     return 0;

  17. }


推荐阅读

史海拾趣

明波通信(BWAVE)公司的发展小趣事

经过多年的发展,明波通信在技术和市场上都取得了显著成绩。为了进一步推动公司的发展,明波通信成功在新三版上市。这一举措不仅为公司筹集了更多的发展资金,也提升了公司的品牌影响力和市场竞争力。上市后的明波通信,在资本市场上展现出了强劲的发展势头。

Abbatron公司的发展小趣事

Abbatron公司深知合作的重要性,积极寻求与业内其他企业的合作机会。通过与某知名电子制造商的合作,Abbatron公司成功将其创新技术应用于实际产品中,进一步扩大了市场份额。这种合作模式不仅促进了双方的发展,也为整个电子行业带来了更多的可能性。

ABL Heatsink公司的发展小趣事

早期,ABL Heatsink公司主要生产通用型散热器,但随着市场竞争的加剧,公司意识到必须调整市场定位。于是,公司开始专注于研发针对特定电子设备的高性能散热器。通过深入了解客户需求,ABL Heatsink成功开发出一系列定制化产品,赢得了市场的青睐。

Gemmy Electronics Co Ltd公司的发展小趣事
高压电击式捕鼠器在工作时会产生高压电,操作时必须注意防止触电。非专业人员请勿私自拆卸或维修捕鼠器。
Corporation Soneet公司的发展小趣事

随着Soneet在技术领域取得的成功,公司开始积极拓展市场。Soneet与多家知名电子设备制造商建立了战略合作关系,共同开发新产品。通过与这些合作伙伴的紧密合作,Soneet的产品得以迅速进入全球市场,进一步提升了公司的知名度和影响力。

Franel Corp公司的发展小趣事

2004年,法勒公司正式进入中国市场,成立了法勒移动供电贸易(上海)有限公司,标志着其全球战略的重大转型。这一决策基于对中国经济快速增长和物流装备市场巨大潜力的深刻洞察。法勒公司凭借其在移动自动化解决方案领域的全球领先地位,迅速在中国市场站稳脚跟,为汽车、电商、快递等多个行业提供高品质的产品和服务。这一转型不仅拓展了法勒的全球市场版图,也为其后续的本土化发展奠定了坚实基础。

问答坊 | AI 解惑

C语言返回语句

如流程图所示,在程序中要写返回到开始程序的语句,但是我不会用C语言写,请求帮助! 另外,那个定时功能用C语言该怎么写啊? 谁有类似的程序啊?…

查看全部问答>

请问谁用过wince的kernel profiler,能给我些资料吗?

我发现除了msdn外,几乎没什么资料,谁有些资料能共享下啊? 或者msdn上的好文章给我点连接也行。…

查看全部问答>

EVC里面有否办法调整窗口的z次序分配规则

   WinCE里面做Win32应用程序,十分郁闷的就是其控件Z次序分配与VS里面完全相反,VS里面后创建的控件在前,但是在CE里面却是先创建的控件在前,造成很多不便,比如说要声明一个Group Button,再以这个Group Button作为父窗口在里面再创建 ...…

查看全部问答>

朋友们进来接分喽

我在深圳搞嵌入式开发,近来有创业的念头。 问问大家订什么报纸比较适合我看,好了解一下现在市场的大背景。 培训嵌入式的机构有教驱动开发吗?深圳有哪些有名的培训机构啊? 进来的朋友都有分的,哈哈! …

查看全部问答>

做一个登陆界面出现的问题

做一个登陆界面,输入一个四位的密码,若密码错误,就弹出错误消息 类 class CPASSWORDDlg : public CDialog {} 然后函数 BOOL CPASSWORDApp::InitInstance() {         CPASSWORDDlg dlg;         ...…

查看全部问答>

如何掌握好焊接技术

焊接实质上是将元器件高质量连接起来最容易实现的方法,因此,焊接技术是相当需要具备的。    一、 工具:    首先告诉大家的是焊接常用的工具和材料:电烙铁、焊料、助焊剂、钢丝钳、万用表等都是必备的工具 电烙铁、焊锡丝、松香   1 ...…

查看全部问答>

MSP430F6638IO端口中断问题,求解决。。

描述:MSP430F6638IO端口中断时,它的IO端口捕捉中断时是捕捉的上升沿还是下降沿?我知道能在PXIES中设置,相应的位为0时是上升沿,为1时是下降沿中断,但是如果初始化时不设置的话也就是默认的话是上升沿还是下降沿捕捉中断呢?手册上是说PXIES复 ...…

查看全部问答>

【Nucleo+BLUENRG心得】+解决无法连接出错!

【Nucleo+BLUENRG心得】+无意连接出错! 昨天再试BLUENRG时,居然出现以下错误! 而设备管理器中,ST-LINK还是正常的! 找找ST有没有配套擦除工具:STM32 ST-LINK Utility 擦除时要按着B1,然后才可以擦除。 …

查看全部问答>

#8月改装#给天猫1代盒子换个遥控器

    天猫盒子,还是那时候0.01元抢购的,相信当时有不少坛友也抢到了。盒子用了这么久,还不错。期间优酷什么的被禁了,但是上有政策下有对策。装了泰捷视频,继续满血复活。闲话不说了,拉回主题。这个盒子有个主要的问题,就是遥控器。 ...…

查看全部问答>