This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

【活动结束】轻松秀一下,MSP430 LaunchPad 等你拿!

Other Parts Discussed in Thread: MSP430G2231, MSP430F249, MSP430F149, MSP430F2418, MSP430F148, MSP430F413, MSP430F1612, MSP430F449, MSP430F1611, MSP430F4270, MSP430F1121, SN75240, MSP430G2553, CC2500, MSP430G2452, MSP430FG439, MSP430F2272, MSP430F6638

无论您是 MSP430 的设计老手,还是初涉 MSP430 应用设计,8  30 日到 9 16 ,快来分享您认为对您设计有用的资料文档!每一位分享者将获赠一块 MSP430 LaunchPad + MSP430 电容触摸 BoosterPack 

MSP-EXP430G2

活动规则: 

分享内容: 资料可来源于 TI 官方网站或自创内容,且和MSP430相关 

分享方式:
- 全部以跟贴形式 
- 可以在贴子中贴出 TI 官方网站MSP430资料的链接
- 可以把自已总结的MSP430资料以附件形式秀出
- 须简要介绍一下文档对您设计的帮助

获赠标准:一个 ID 仅拥有一个获赠机会 

 

 

我们期待您的给力分享!

 

 

希望 TI 官方 MSP430 社区为大家提供一个学习、分享的平台!

  • 一次只能贴一个啊?!

    1.1 概 述
    当前市场上存在很多种微处理器,每种微处理器都各有其特色。针对不同的应用选择合
    适的微处理器非常重要。MSP430 的主要特点为:
    (1)超低功耗 拥有5 种低功耗模式,以适应不同的需要。CPU 从低功耗模式被唤醒,
    这个过程最多只需要6μs,因此,在某些需要迅速作出反应的应用中,CPU 能够及时退出低
    功耗模式,进入工作模式。
    (2)灵活的时钟使用方式 除了片内集成一个晶体振荡器外,还可外接1~2 个晶体振
    荡器。不同的内部功能模块可根据需要使用不同的晶体振荡器,在不需要时可以通过设置寄
    存器将其关闭,以降低功耗。
    (3)高速的运算能力 16 位RISC 架构,125ns 指令周期。
    (4)丰富的功能模块 集成了大量的功能模块,这些功能模块包括:
    多通道10~14 位AD 转换器
    双路12 位DA 转换器
    比较器
    液晶驱动器
    电源电压检测
    串行口USART(UART/SPI)
    硬件乘法器
    看门狗定时器和多个16 位、8 位定时器(可进行捕获、比较、PWM 输出)
    DMA 控制器
    FLASH 存储器。它可以在运行过程中由程序控制写操作和段的擦除(In system
    programmable),不需要额外的高电压。
    (5)廉价专业的开发工具 MSP430 的芯片上包括JTAG 接口,因此在仿真调试程序时,
    通过一个廉价的JTAG 接口转换器就可以完成以往用昂贵的仿真器才能完成的功能,如设置
    断点、单步执行程序、读写寄存器等。
    (6)灵活快速的编程方式 可通过JTAG 和BSL 两种方式向CPU 内装载程序。
    (7)高保密性 只需按照特定的方式将MSP430 内部的熔丝熔断,JTAG 口便被物理性
    地阻断。BSL 方式所需要的密码长达256 位,排列组合出来的密码量为2 的256 次幂,如此
    巨大的数量被破解的可能性微乎其微。
    (8)低电源电压范围 1.8~3.6V。

  • P1.3按键判断的四种方法.txt     列出了我总结的四种判断P1.3按键的方法。

    触摸按键板LED等连接原理图.pdf  是我测量出的电路连接关系,可以比较清晰知道如何控制触摸按键板的LED的亮或者灭。

    按键板LED连接及P1.3判断四法.rar
  • 一些非常好的例程,供初学者入门和提高,该例程集涵盖了430单片机的各种模块,帮助学习者迅速熟悉430内部结构以及寄存器的实用。

  • 分享一些自己写的基于MSP430G2553的外设接口函数,有UART,TIMER,I2C,GPIO。每个模块都有对应的头文件,使用某个模块时只需调用相关函数就可。不用再一个一个看寄存器了。附件如下

    msp430.zip
  • 这两个文档不错,《A Wireless Sensor Monitor Using the eZ430-RF2500》和《CC2500  

    Single Chip Low Cost Low Power RF Transceiver 》,对于初学者来说很有帮助,而且配上TI赠送的Demo板,可以很快的上手,一周就能学会MSP430了。只要是具有MCU基本知识的人都能学得会的,430是比较简单,比较好用的一个MCU系列。

    文档可以在这里查找:www.ti.com.cn/.../ez430-rf2500

  • 虽然很早就从TI获得MSP430系列的样片,但是把它很好的应用到具体的项目里面还是花了很长的时间。就是在不停的测试和到TI的官网里面查资料的反复中成功的!!

    .ti.com.cn/.../slau337a.pdf

    processors.wiki.ti.com/index.php

    www.ti.com.cn/.../ccstudio-msp430

    以上这些文件都是我学习使用MSP430的资料,当然其他的很多也是非常有用的。

  • 非常不错的活动,作为多年TI DSP的设计开发工程师,早在10多年前就在杭州参加TI&杭州利尔达合作开展的MSP430培训推广行动(好象是第一届吧?)。进入公司后,先后接触了其他公司的一些嵌入式处理器以及一些新兴公司的单片机和其他处理器,给我的感觉没有一家公司在器件的datasheet以及applications以及开发工具套件比TI做得好!!

    TI MSP430的功耗和性能相比其他单片机有技术优势,希望有套MSP430开发工具研究一下但一直没有机会获得,希望这次活动等赶上,谢谢!

  • 这里贴一个MSP430和NRF24L01调试的文档,不知道是不是已经有人分享过了,反正自己在设计无线传感器的时候受益颇多。

    作为收发测试的话其实一块便宜的launchpad刚好够用,G2231有AD模块,可以用作采集,而G2211相对功能少一些,但用来在接收端做显示和其他控制功能已经足够。

    另外很好奇为什么G2231和G2211的头文件里都没有位操作,每次用运算符挺烦人的。

    NRF24L01+MSP430调试文档.pdf
  • 我觉得这篇文档相当好,题目是:MSP430F常用模块应用原理.pdf

    对于初学者来说可以说太有价值了,对于MSP430F常用模块的原理和应用进行了讲解。

    具体自己看附件,先列一下标题:

    1- 复位模块
    2- 时钟模块
    3- IO端口模块
    4- WDT看门狗模块
    5- Timer A定时器模块
    6- 比较器 A模块
    7- ADC12 数模转换模块
    8- USART 串行异步通讯模块
    9- CPU 模块及全局资料
    10-MSP430 其它应用介绍

    MSP430F常用模块应用原理.pdf
  • 新浪爱问上有很多msp430资料,注册账号后即可下载。

    比如:

    http://ishare.iask.sina.com.cn/f/24488386.html

    http://ishare.iask.sina.com.cn/f/19620079.html

    http://ishare.iask.sina.com.cn/f/33510377.html

    等等。

    希望能够收到奖品。

  • 我收集到的"msp430精品讲座",我觉得对初学者还行!

    msp430精品讲座.rar
  • 这块launchpad在以前参加TI活动中拿到过,后来给人了,这作为430入门还是很好的。我当时就是根据User's Guide for LaunchPad的说明来入门MSP430的

    User's Guide for LaunchPad.pdf
  • 我感觉这个文档相当的好,题目是:MSP430延时函数设计。

    学习了这篇文档之后能灵活利用430的寄存器及其超低功耗的特点编写出各种级别的延时函数,如us,ms,s级别的精确的延时,

    在编写DS18B20,模拟IIC等对时序严格要求的程序时更加的得心应手,严格控制好延时的时间。

    真心希望能得到TI的板子进行更深入的学习!!

     

    msp430延时函数设计.pdf
  • edu.21ic.com/.../1

    贴一个视频教学的地址,有完整系统的开发讲解,也有讨论区,对于学习MSP单片的朋友,应该是非常有用的.无论是初学还是深入探讨都是一个不错的去处.

  • 我分享一个430硬件工具相关的文章,下载地址:www.ti.com.cn/.../slau278j.pdf

    文章标题:MSP430 Hardware Tools User's Guide

    对于430相关硬件电路设计很有帮助,该文章提供了全系列原理图和PCB参考设计图纸、BOM清单等,详细讲述了各种下载方式:两线制、四线制JTAG,UIF、PIF的参考设计,BSL等!参数选择注意事项等,是进行硬件电路设计的宝典。

  • 附近对我快速入门单片机编程用处特别大!
    MSP430_C语言例程注释详.pdf
  • 我觉得比较好的文档是:Heart-Rate and EKG Monitor Using the MSP430FG439 以及“通过使用MSP430G2452微控制器的LaunchPad ValueLine开发包实现基于心电图的心率监测“

    下载地址是:www.ti.com.cn/.../slaa280a.pdf

                          www.ti.com.cn/.../zhca428.pdf

    其中前一篇文档还有相应的实物可以购买,而且相关文件中有完整的目标代码可以看。我在做ECG监测工程的开始时期,从该应用手册和相关文件中受益颇多。其中对仪表放大器的选择、心率监测的算法都很有借鉴意义。特别是代码中的滤波算法很有意思。

    第二个文档中也提到了ECG采用的放大器选择,并对仪表放大器的提出了概念。而且使用了ez430虚拟uart,作为无线链接的手段。

    下面贴一下我的做的基于MSP430F149的三导联心电图监测模块的样机。还有传到手机上的示意图

     

  • 光听说过没用过,要是有个开发板可以试一试。

  • 光听说过没用过,要是有个开发板可以试一试。

  • 资料名称为:MSP430 32kHz晶体振荡器应用报告

    链接为:www.ti.com.cn/.../zhca445b.pdf

    通过对32kHz晶体振荡器应用的了解,我对此晶振的选择、电路布局、配置方法有了更加深刻的认识。因为涉及到了高频电子线路里面所讲到的晶体振荡电路,而我在这方面并不是很熟悉,因此这篇文章也让我学到了很多这方面的知识,为我设计无源晶体振荡电路提供了帮助。

    文档主要内容如下:

    1 32 kHz 晶体振荡器

    2 晶振选择

    3 印刷电路板 (PCB) 设计注意事项

    4 测试晶体振荡器

    5 生产中的晶体振荡器

    同时,我也把我的资料分享一下。。。

     

    msp430学习笔记.doc
  • 接触430有段时间了,最新推出的launchpad,更是低功耗和实用。非常感谢TI,希望继续给力。

    IAR_EW_for_MSP430安装指南和使用说明.pdf
  • 才学单片机没有多久,但是这个资料我一直在看.

    他是一本实验教程,除了介绍430单片机的模块功能外,还提供了每个模块的典型应用程序.

    实在是不可多得的一本好资料,在这里和大家分享一下,共同学习,共同进步.

    教学试验系统教程.pdf
  • 资料不少,就不知道怎么都传上

    G2553中文资料.pdf
  • www.deyisupport.com/.../6046.aspx

    MSP430 LaunchPad 大讲堂

    www.deyisupport.com/.../0083.LaunchPad.pdf  这里还有入门资料、例子,很适合初学者。

    这里的东西比较全,对我这种初学者来说很有帮助,还在学习中。。。

  • 前一阵子买了一块EXP430FR5739铁电开发板,也找了很多资料学习,资料都很全,但是却很少找到有关于IAR、CCSv5编译器编译完成后该如何下载到单片机中进行调试、以及需要注意的事项等。这是初学者入门的一道阻碍!有一天我在EEword论坛看到有人发帖分享心得《手把手教你使用TI MSP430 LaunchPad》链接:bbs.eeworld.com.cn/thread-303599-1-5.html,作者用图文并茂的方式介绍了在IAR开发环境下程序编译完成后如何下载程序到单片机中进行调试,以及需要注意的地方,非常感谢原文作者David_Lee。我觉得这是最基本也是最重要的一个技能,我觉得不管你程序写如何、有多了解MSP430的架构,首先得下载到单片机中跑跑才算真正的入门。附件是David_Lee写的手把手教你使用TI MSP430 LaunchPad的PDF文档。

    手把手教你使用TI MSP430 LaunchPad.pdf
  • 2008年底开始学习使用MSP430 刚开始是个比较辛苦的过程。

    2010年中开始尝试设计实际的产品

    2011年 成功完成光学便携式仪器设计一款

    2012年 到目前为止刚完成另一款光学测量便携式仪器。成功体现MSP430的低功耗。在稳压前测量电流为15UA表示满意。

    现在msp430 如可以胜任现有的项目 我个人还是很推荐。受此影响公司一些产品上都有MSP430的身影。

    以下是个

    msp430 查找的连接方便需要的朋友

    www.ti.com.cn/.../product_search.page

    刚学习需要开发工具连接:

    www.ti.com.cn/.../hardware_and_software.page

    msp430 官方的技术文档  :

    www.ti.com.cn/.../mcuprodtechdoc.tsp

    开发都需要什么软件呢 就在这里:看看朋友们是不是有你需要的

    www.ti.com.cn/.../mcuproductcontentnp.tsp

  • 估计国内用D版IAR作为C编译器的用户非常多。而MSP430-GCC是一款非常优秀的免费C编译器,编译效率也非常好。但是这个软件包只能编译,没有调试工具。之前曾经有一款msp430-gdbproxy,做GDB和FET的代理,供调试,但是经我实践验证,这个软件太老了,最新的版本也是2006年的,而且我连调试普通的msp430f2272都说不识别的device,在initial device时就异常退出了。

    现在好了,有一款更好的:MSP-DEBUG,这个开源软件更新非常快,最新的更新版是2012年7月份的。所以,使用MSP430-GCC + MSP-DEBUG,在开源IDE eclip se下,构成了完整的免费的msp430开发、调试环境。关于MSP-DEBUG的更多详情请参考:

    mspdebug.sourceforge.net/manual.html

    建议使用D版IAR作为开发环境的用户都转到MSP-GCC + MSP-DEBUG这个环境下。这下自己开发的软件就放心了,再也不怕被被追究版权问题了。

  • 无论是 MSP430 的设计老手,还是初涉 MSP430 设计新手,都会根据所使用的芯片具体型号下载TI官方提供的软件包。具体步骤如下:

    1.登陆TI官网。www.ti.com

    2.在左上角搜索栏输入想找的单片机型号,例如:MSP430F1611

    3.一般情况会直接搜索到产品,进入产品页面,选择Software (6)

    4.在里面找到MMSP430x13x, MSP430F14x, MSP430F15x, MSP430F16x Code Examples (Rev. N)

    www.ti.com/.../slac015n

    5.下载slac051n.zip

    6.解压会得到

  • //MSP430F14-直接IO口按键检处理程序
    /*************************************************************************/
    //以下是结合MC430F14开发板来实现的按键检处理程序实验.
    //分别使用了采个三个按键接到MSP430的通用IO口,按任意一个按键可以使板上的LED反转.
    //例程中,按键采用不断查询方式,以得到键值.并没有使用到低功耗.此程序结构比较适合
    //用在非手持设备或非电池供电的设计中.此程序结构比较通用,级用户可参与或套用修改.
    //应用目标板:MC430F14x开发板
    /*************************************************************************/
    #include <msp430x14x.h>
    //初级用户要习惯采用宏定义,以方便的编写和修改
    #define keyio 0xf8       //定义按键IO口,Px0-Px2 IO口.
    #define key_1 0xfe       //定义返回键值1
    #define key_2 0xfd       //定义返回键值2
    #define key_3 0xfb       //定义返回键值3
    //声明子程序
    unsigned char key_chcek(void);
    void display_update(unsigned char dta);
    void key_process_0(void);
    void key_process_1(void);
    void key_process_2(void);
    //*************************************************************************
    //将单片机初始化程序放在main()前面是方便查看单片机的初始化状态情况.
    void MCU_int(void)
    {//默认MCLK主时钟频率为DCO=~800K
      P1OUT |= BIT1;     //设置LED,上电为灭.电路可以查看MC430F14电路图.
    P1DIR |= BIT1;     //P1.1设置为输出.
    //MSP430单片机IO口上电默认方向为输入,所以接按键的IO无需再设为输入.
    }
    //*************************************************************************
    void main (void)
    { unsigned char key_value;          //定义键值全局变是
      WDTCTL = WDTPW + WDTHOLD;         //关狗
      MCU_int();                        //初始化单片机
      while(1)                          //主程序主循环
      {
      key_value=key_chcek();            //检测,有键按下并松开,返回一个键值.
      switch (key_value)                //对键值进行处理.采switch语法结构查询
      {
      case key_1: key_process_0();      //调用键处理程序1
                  break;
      case key_2: key_process_1();      //调用键处理程序2
                  break;  
      case key_3: key_process_2();      //调用键处理程序2
                  break;
      default: ;                        //调用键处理程序4
                  break;    
      }
    display_update(key_value);        //如果有需要可以在这里加上显示更新程序.
    key_value=0x00;                   //最后清除键值.将继续主循环.
      }
    }
    //*************************************************************************
    //按键检测程序
    //返回值: 无符号字符型键值
    unsigned char key_chcek(void)
    {
    unsigned int i;
    unsigned char timp,active;
    active=0;
    while(!active)
    {
       while(0xff ==( P2IN | keyio));   //一直等待有键按下
       timp = P2IN | 0xf8;              //若有键接下了,则读入IO状态.
       for(i=0;i<7000;i++);             //延时,是为了去按键抖动.
       if (timp ==(P2IN | 0xf8))        //经延时后,还是那键吗?
        { active = 1;                   //是,则按键有效.
           while(0xff !=( P2IN | keyio));   //一直等待按键松开
         }
       else
        {                               //去按键抖动后读入的键值与之前不同.则先效.
         active = 0;                    //再循环检测.
        }
    }
        return timp;                    //返回一个键值.
    }
    //*************************************************************************
    void key_process_0(void)          //值处理,用户可以自己修改...
    {
    P1OUT ^= BIT1;  
    }
    //*************************************************************************
    void key_process_1(void)        //值处理,用户可以自己修改...
    {
    P1OUT ^= BIT1;  
    }
    //*************************************************************************
    void key_process_2(void)      //值处理,用户可以自己修改...
    {
    P1OUT ^= BIT1;  
    }
    //*************************************************************************
    void display_update(unsigned char dta)  
    {
    ; //用户可以根据需要来放置显示程序,如LCD,LED,Digital-LED....
       //灵活应用,
    }
    //*************************************************************************

  • 个人认为学习430看一下几分从官方网站上下载的资料就差不多够了,看很多参考书其实必要性不是很大,而且效率不高,很多介绍430的书其实就是USERS' GUIDE的中文翻译版,再加上它的示例例程。建议使用CCS,CCS里有TI Exploer,里面有针对各个型号的430的示例代码,比参考书更加贴近你使用的芯片,也更加权威。碰到不会用的地方如AD或者硬件I2C等直接参考里面的例程就可以了。

    就我的学习经验来说这几份文档和CCS就已经能够帮助你轻松上手了。

    MSP430LaunchPad参考资料.rar
  • MPS430的离线烧写FLASH工具MSP430_Flasher,可以脱离IAR和CCS,用在小批量生产时还是不错的

    我改了一个例子,可以烧写LaunchPad的G2553芯片,非常方便,支持HEX和TXT文件。

    里面有详细使用说明。

    MSP430_Flasher_(binary).7z
  • 教材:MSP430接口技术及系统设计实例

    一本初学或查询用书,很早就用了,基础示例逐一学习,会对430的基本掌握有一个提高。

    但对于设计,归根到底还要查芯片手册,做硬件会看英文的手册该算是基本功。

    MSP430SL.pdf
  • MSP430F2xxx的片子就是方便,DIP的封装很适合简单产品的原型设计,有了Launchpad就更方便了。

    附件这个文档虽然没有太多的细节,但展示了这个系列MCU的典型应用,很好地利用了硬件资源,有创意。

    多看看这样的文档,对产品创新有很多帮助。

    感谢TI一直以来的支持。

    基于MSP430F2012的倾斜传感器.pdf
  • 我在使用中发现MPS430适用的范围很广,虽然I/O有限,但是采用了合理的控制方式后,能实现几乎所有的计算和通信功能.不过相对而言,外围设备的数量和设计比MPS430还要多些.其中电源管理,如果能和MCU集成起来,可能是更紧凑的设计,当然,对性能回有影响,但这样回更适合紧凑型的应用了.分享TI资料,

    其中对于EEM的管理需要学习下,和其他MCU是不同的,资料如下

    1. Advanced Debugging Using the Enhanced Emulation Module (EEM) With CCE Version 3 (SLAA393),www.ti.com/.../SLAA393

    2.MSP-FET430 Flash Emulation Tool (FET) (for Use With IAR v3+) User's Guide (SLAU138), www.ti.com/.../SLAU138

    3.MSP-FET430 Flash Emulation Tool (FET) (for Use With CCE v3.1) User's Guide (SLAU157).www.ti.com/.../SLAU157

  • 该文档使我熟练的掌握msp430G2553单片机的使用,当我对一些寄存器不会控制时,我都会查阅它,很全面的。。。

  • 下面是我们设计的一个MSP430的最小系统板,由于是第一次设计里面有一些地方设计的还不是很合理,但是是能用的。

    我们的LaunchPad很难满足一个大系统的需要,就算兼容最强大的G2553也只有很少的RAM和FLASH,十几个可用的IO口,给设计带来很大麻烦,所以我们决定设计找一款功能强大一点的430,下面给大家介绍一下怎样可以以最节约的方式自己制作一个匹配更强大功能的430小系统板。

    -上官方网站上搜索430的样片申请,其中包括了很多型号,我们对比了很多参数下来,认为MSP430F6638在所有可申请样片中是各方面性能最好的,一次还能申请2片哦!

    -自己用Altium Designer设计一个小系统板,当然可以参考下我们的设计,并改进这个板子的不足。

    -投板,大概只需100元左右就能弄到10块板子,大家可以组团投板,这样板子做好以后有什么问题也可以交流。

    -自己焊接,如果你和我们一样在大学的创新基地,那么一块板子的成本基本就只要10元,因为需要的器件都可以免费拿,排针,跳线帽,座子,USB口应该都有提供。

    注:由于原文件太大,所以导出PDF上传,如果需要原文件,请回复您的邮箱。

    msp430最小系统板.rar
  • 太给力了,刚刚在爱板网上买了launchPad,准备开始学习430,现上传我在网上搜集到的一些资料。

    目录如下,希望我能申请成功,谢谢德仪的活动

    1:430电容式触摸库使用手册

    http://www.ti.com.cn/cn/lit/an/slaa491b/slaa491b.pdf

    2:如何开始电容式触摸屏设计

    http://www.ti.com.cn/general/cn/docs/lit/getliterature.tsp?literatureNumber=zhcu033&fileType=pdf

    3.MSP430各种详尽资料,基于launchPad

    http://www.ideyi.org/bbs/article_1077_410845.html

    4。MSP430 中文参考设计技术文献汇总(内容多)

    http://www.ideyi.org/bbs/article_1077_445386.html

    5.【MSP430程序库】整理

    http://www.ideyi.org/bbs/article_1077_374597.html

     

    6.【MSP 430 Launch Pad】基于Launch Pad资料大全(含学习笔记)

    http://www.ideyi.org/bbs/article_1077_300138.html

     

     

    Capacitive+Touch+Sense+Library+(CAPSENSELIBRARY)+Programmer&#039;s+Guide-用户指.pdf
  • Msp430自己的学习心得和一些常用的资料!是在江苏省电子设计竞赛时准备的资料,希望给更多的人用处把。。。。。。。

    希望更多的人参与到这样的比赛和学习MSP430单片机中。。。。。。

    msp430.rar
  • MSP430最大的优势就是在保证高性能的同时还能很好控制最低功耗,超低功耗也得益于丰富的低功耗模式。

    该文章来自利尔达网站,图文并茂详细介绍MSP430F5xx系列芯片通过低功耗4.5模式(LPM4.5)实现最低功耗的调试方法。

    对MSP430低功耗设计开发具有很好的指导作用,同时文章对深入理解低功耗过程实现也有很好帮助!

    故推荐之~

    MSP430低功耗4.5模式(LPM4.5)的调试方法.doc
  • 自己编写的各模块集成

    #include <msp430g2553.h>

    int i,j,k;

    int temp =15;

    int temp1 =10;

    int temp2 =20;

    int temp3 =2;

    int temp4 =8;

    void setuart(void);

    void settimeA(void);

    void compare(void);

    void ADC(void);

    void PO1(void);

    //void settimeA1(void);

    void main(void)

    {

     WDTCTL = WDTPW + WDTHOLD;                 // Stop WDT

     DCOCTL =CALDCO_1MHZ;

     BCSCTL1 = CALBC1_1MHZ;

     P1DIR |= BIT0 + BIT6;                            // P1.0 output

     setuart();

     settimeA();

     compare();

     ADC();

     PO1();

     //ADC10CTL1 = INCH_4 + CONSEQ_3;            // A1/A0, repeat multi channel

     _BIS_SR(LPM0_bits + GIE);                 // Enter LPM0 w/ interrupt

    }

    //串口初始化

    void setuart(void)

    {

     P1SEL |= BIT1 + BIT2;

     P1SEL2 |= BIT1 + BIT2 ;

     UCA0CTL1 |= UCSSEL_2;                     // MCLK

     UCA0BR0 = 104;                            // 1MHz 9600

     UCA0BR1 = 0;

     UCA0MCTL = UCBRS0;                        // Modulation UCBRSx = 1

     UCA0CTL1 &= ~UCSWRST;                     // **Initialize USCI state machine**

     IE2 |= UCA0RXIE;                          // Enable USCI_A0 RX interrupt  

    }

    //定时器A初始化

    void settimeA(void)

    {

      TACCTL0 = CCIE;                             // CCR0 interrupt enabled

      TACCTL1 = CCIE;                             // CCR0 interrupt enabled

      TACTL = TASSEL_2 +  MC_2 ;                // SMCLK, contmode ;  

      CCR0 =10000;

      CCR1 =50000 ;

    }

    //比较器初始化

    void compare(void)

    {

     CACTL1 = CAREF_1 + CAON + CAIE;          // 0.5 Vcc = +comp, on  内部参考

     CACTL2 = P2CA3 + P2CA2 + P2CA1;             //通道7 P1.7              

    }

    //ADC初始化

    void ADC(void)

    {

     ADC10CTL0 = SREF_0 + ADC10SHT_2 + REFON + ADC10ON + ADC10IE ;  // 参考电压0.5V

     ADC10CTL1 =  CONSEQ_0 + INCH_5;

     ADC10AE0 |= BIT5;

    }

    //外部中断初始化

    void PO1(void)

    {

     P1OUT |=  BIT3;                            // P1.4 set, else reset

     P1REN |= BIT3;                            // P1.4 pullup

     P1IE |= BIT3;                             // P1.4 interrupt enabled

     P1IES |= BIT3;                            // P1.4 Hi/lo edge

     P1IFG &= ~BIT3;                           // P1.4 IFG cleared

    }

    // Timer A interrupt service routine

    #pragma vector=TIMER0_A0_VECTOR

    __interrupt void Timer_A (void)

    {

       j++;

     if(j>=10)

     {

       j=0;

     //CCR0 += 50000;                            // Add Offset to CCR0

      while (!(IFG2&UCA0TXIFG));                // USCI_A0 TX buffer ready?

      UCA0TXBUF = temp1;                    // TX -> RXed character  10

     }

    }

    #pragma vector=TIMER0_A1_VECTOR

    __interrupt void COMPARATOR (void)

    {

      switch( TA0IV )

     {

     case  2:                                  // CCR1

       {

      // P1OUT ^= BIT0;

       }

              break;

     case  4: break;                           // CCR2 not used

     case 10: break;                           // overflow not used

    }

       i++;

     if(i>=10)

     {

       i=0;

     //CCR0 += 50000;                            // Add Offset to CCR0

      while (!(IFG2&UCA0TXIFG));                // USCI_A0 TX buffer ready?

      UCA0TXBUF = temp;                    // TX -> RXed character  10

     }

    }

    #pragma vector=COMPARATORA_VECTOR

    __interrupt void COMPARATORA (void)

    {

     /* if ((CAOUT & CACTL2))

      {

      }                      // if CAOUT set, set P1.0

        else

          P1OUT &= ~0x01;                    // else reset

     */  

        for(k=0;k<5;k++)

          P1OUT ^= BIT0;

        while (!(IFG2&UCA0TXIFG));                // USCI_A0 TX buffer ready?

        UCA0TXBUF = temp2;                    // TX -> RXed character  20

    }

    #pragma vector=USCIAB0RX_VECTOR

    __interrupt void USCI0RX_ISR(void)

    { // temp++;

     ADC10CTL0 |= ENC + ADC10SC;             // Sampling and conversion start

     while (!(IFG2&UCA0TXIFG));                // USCI_A0 TX buffer ready?

     UCA0TXBUF = UCA0RXBUF;                    // TX -> RXed character

     //ADC10CTL0 &= ~ENC ;

    }

    #pragma vector=ADC10_VECTOR

    __interrupt void ADC10(void)

    { // temp++;

     temp3 = ADC10MEM;

     while (!(IFG2&UCA0TXIFG));                // USCI_A0 TX buffer ready?

        UCA0TXBUF = temp3;                    // TX -> RXed character  2

    }

    #pragma vector=PORT1_VECTOR

    __interrupt void PORT1(void)

    {

     P1OUT ^= BIT6;

     //P1IFG &= ~BIT3;

     while (!(IFG2&UCA0TXIFG));                // USCI_A0 TX buffer ready?

        UCA0TXBUF = temp4;                    // TX -> RXed character  8

    }

  •  文档中的程序有注释,对初学者是很好的资料,有很大的帮助

  • 以前主要用C51与AVR系列,最近准备学习MSP430,收集的资料主要在阿莫电子论坛

    http://www.amobbs.com/forum.php?mod=forumdisplay&fid=3064

    TI MSP430中文技术文献汇总2000多篇(国内最全)

    http://www.amobbs.com/thread-4719380-1-1.html

     

     

  • 这是MSP430F20系列的示例代码,我使用的就是F20系列的,看示例代码比看参考书来得更加直接,更贴近,如果是使用同一系类的430,您可以下载这份资料,如果不是,我也建议您去官方网站上下载示例代码。

    MSP430F20xx Code Examples.rar