如何使用Energia快速开发常见的MSP430/432LaunchPad

到学校里事情有点多,笔记刚好写到ADC,ADC内容也有点多,所以暂时停更了,不过这份笔记我一定会去完善的,感兴趣的可以持续关注一下。
今天发现一个很好的开发MSP430单片机的IDE,感觉能够对大多数正在准备电赛和入门使用MSP430单片机的同学提供到很大的帮助,特意来发一份博客,将我收集的资料分享出来,需要的同学自取就可以了。
相信很多同学都听参加过电赛的学长说过Arduino,而今天的这份资料就是让大家使用Arduino的开发方式去开发MSP430。我是在Seeed发现的该方法,上面主要是介绍一款LaunchPad的扩展板,只是引出IO,想自制的也可以自制一块,也包括一些常见传感器使用的Demo,该教程我也会放在资料包里,官网链接为https://wiki.seeedstudio.com/cn/Grove_Base_BoosterPack/
话不多说,以板载LED闪烁的Demo作为展示:

// most launchpads have a red LED
#define LED RED_LED

//see pins_energia.h for more LED definitions
//#define LED GREEN_LED
  
// the setup routine runs once when you press reset:
void setup() {                
  // initialize the digital pin as an output.
  pinMode(LED, OUTPUT);     
}

// the loop routine runs over and over again forever:
void loop() {
  digitalWrite(LED, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);               // wait for a second
  digitalWrite(LED, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);               // wait for a second
}

Energia界面 像正常Arduino的开发流程,你只需要选择开发板定义,端口号(注意:端口处会显示两个串口,一个是下载口,一个是仿真口,我们选择下载端口),再点击上传就可以了。不过任何事物都有两面性,这只会让你快速开发Energia已有的开发板型号(LaunchPad系列),对其他MSP430型号的MCU和底层的一些寄存器学习并不会特别友善,但可以去阅读人家封装好的函数后再去学习底层知识,位置在:…\energia-1.8.10E23\hardware\energia\msp430\cores\msp430,LaunchPad型号定义在:\energia-1.8.10E23\hardware\energia\msp430\variants,个人建议大家都阅读一下吧,毕竟我们只是在使用人家写好的平台。
以下是Energia的官方链接:https://energia.nu/,我只翻译了部分介绍,感兴趣的同学可以自行去看看。
Energia 是一个开源电子原型设计平台,由 Robert Wessels 于 2012 年 1 月创立,其目标是将 Wiring 和 Arduino 框架引入基于德州仪器 MSP430 的 LaunchPad。 Energia IDE 是跨平台的,支持 Mac OS、Windows 和 Linux。 Energia 使用 Peter Bigot 的 msp gcc 编译器。Energia 包括一个集成开发环境 (IDE),它以处理 IDE(处理→接线→Arduino→Energia)为基础。 Energia 也是一个可移植的框架/抽象层,可以在其他流行的 IDE 中使用。
Energia 和 Arduino 的基础是 Hernando Barragan 开发的 Wiring 框架。该框架是为设计师和艺术家精心创建的,旨在鼓励来自世界各地的初学者和专家分享想法、知识和集体经验的社区。Energia 团队采用边做边学的理念,努力让直接使用硬件变得容易。专业工程师、企业家、制造商和学生都可以从 Energia 为微控制器带来的易用性中受益。
德州仪器(Texas Instruments)提供了 MSP430、MSP432x、TM4C、C2000、CC32xx 和 CC13xx LaunchPad, LaunchPad 是由德州仪器 (TI) 制造的低成本微控制器板。最新版本的 Energia 支持大多数 LaunchPad 产品。
最后再展示一个ADC12数值在数码管上的显示Demo吧:

#include "TM1637.h" 

/* Macro Define */
#define CLK               39          /* 4-Digit Display clock pin */
#define DIO               38          /* 4-Digit Display data pin */
#define LED               RED_LED     /* blink LED */
#define ROTARY_ANGLE_P    24          /* pin of rotary angle sensor */

/* Global Variables */
TM1637 tm1637(CLK, DIO);              /* 4-Digit Display object */
int analog_value = 0;                 /* variable to store the value coming from rotary angle sensor */
int blink_interval = 0;               /* LED delay time */
int8_t bits[4] = {0};                 /* array to store the single bits of the value */

/* the setup() method runs once, when the sketch starts */
void setup() 
{
    /* Initialize 4-Digit Display */
    tm1637.init();
    tm1637.set(BRIGHT_TYPICAL);
  
    /* declare the LED pin as an OUTPUT */
    pinMode(LED, OUTPUT);
}

/* the loop() method runs over and over again */
void loop() 
{   
    analog_value = analogRead(ROTARY_ANGLE_P);      /* read the value from the sensor */
    blink_interval = analog_value;                  /* store the rotary analog value */
    digitalWrite(LED, HIGH);                        /* turn on LED */
    
    memset(bits, 0, 4);                             /* reset array before we use it */
    for(int i = 3; i >= 0; i--) 
  {
        /* Convert the value to individual decimal digits for display */
        bits[i] = analog_value % 10;
        analog_value = analog_value / 10;  
        tm1637.display(i, bits[i]);                 /* display on 4-Digit Display */
    }
    /*
      The amount of time the LED will be on and off depends on
      the value obtained by analogRead().
    */ 
    delay(blink_interval);    
    digitalWrite(LED, LOW);
    delay(blink_interval);
}

实物照:
ADC12

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值