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.

[参考译文] MSP-EXP430F5529LP:将代码从 Energia 上传到 MSP430

Guru**** 2298570 points
Other Parts Discussed in Thread: ENERGIA
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1462992/msp-exp430f5529lp-uploading-code-from-energia-to-msp430

器件型号:MSP-EXP430F5529LP
Thread 中讨论的其他器件:Energia

工具与软件:

您好!  

我正在尝试 将我的代码从 Energia 上传到 MSP-exp430f5529 Launchpad。

问题是它给了我一个错误、我不确定是我的语法还是安装了错误的软件。  

如果您能为我提供正确的指导、我将不胜感激。  

这是错误:

java.io.IOException:无法运行程序"{runtime.tools.dslite-9.2.0.1793-E1.path}/DebugServer/bin/DSLite:CreateProcess error=2、系统找不到指定的文件
在 java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
at processing.app.helpers.ProcessUtils.exec(ProcessUtils.java:26)
位于 cc.Arduino.packages.Uploader.executeUploadCommand (Uploader.java:129)
请访问 cc.arduino.packages.uploaders.SerialUploader.runCommand(SerialUploader.java:383)
位于 cc.Arduino.packages.uploaders.SerialUploader.uploadUsingPreferences(SerialUploader.java:197)
at cc.Arduino.UploaderUtils.upload(UploaderUtils.java:77)
at processing.app.SketchController.upload(SketchController.java:732)
at processing.app.SketchController.exportApplet (SketchController.Java:703)
at processing.app.Editor$UploadHandler.run(Editor.java:2075)
请访问 java.lang.Thread.run(Thread.java:748)
导致的原因: java.io.IOException:系统无法找到指定的文件
在 java.lang.ProcessImpl.create(本机方法)
在 java.lang.ProcessImpl. (ProcessImpl.Java:386)
在 java.lang.ProcessImpl.start(ProcessImpl.java:137)
在 java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)
.... 9更多
上传 sketch 时出错

如果需要、可执行以下代码:

#include<SPI.h>
#include<msp430f5529.h>
#include "HardwareSerial.h"

void Initialize();

#define CS BIT1
#define STEP BIT2
#define SLEEPn BIT6
#define DIR_PIN BIT1
#define RST BIT7
#define STALL_PIN BIT0
#define FAULT BIT2
int flag =0;
int i,j;

char in;
void setup()
{
  //output pins
  P8DIR |= CS;
  P4DIR |= (STEP|DIR_PIN);
  P2DIR |= (RST|STALL_PIN|FAULT);
  P6DIR |= SLEEPn;
  pinMode(P7_4, OUTPUT);
  digitalWrite(P2_2, HIGH); // fault input
  digitalWrite(P2_0, HIGH); // Stall input
  digitalWrite(P6_6, HIGH); //nSLEEP = high
  digitalWrite(P4_1, HIGH); //dir = high
  digitalWrite(P2_7, LOW);  //reset = low
  Serial.begin(115200);
  SPI.begin();
  SPI.setClockDivider(2);
  delay(1);
  Initialize();
  getCurrentRegisters(); 

  digitalWrite(P7_4, HIGH);
  delayMicroseconds(10);
  digitalWrite(P7_4, LOW);
}

void loop()
{
  WriteSPI(0x0C, 0x05);
  for(i=0; i<200; i++){
      digitalWrite(P4_2, LOW); // step
      delayMicroseconds(100);
      digitalWrite(P4_2, HIGH);// step
      delayMicroseconds(10000);
  }
    WriteSPI(0x0C, 0x04);
  delay(1000);
  
  WriteSPI(0x0C, 0x07); //reverse the direction to return back
  for(i=0; i<200; i++){
      digitalWrite(P4_2, LOW);
      delayMicroseconds(100);
      digitalWrite(P4_2, HIGH);
      delayMicroseconds(10000);
  }
  WriteSPI(0x0C, 0x04);
  delay(1000);
}

unsigned int WriteSPI(unsigned char dataHi, unsigned char dataLo)
{
  //  unsigned int readData = 0;
  //  SPI.setBitOrder(MSBFIRST);
  //  digitalWrite(P8_1, HIGH);
  //  SPI.transfer(dataHi);
  //  
  //  SPI.transfer(dataLo);
  //  digitalWrite(P8_1, LOW);
  unsigned int readData = 0;

  digitalWrite(P8_1,HIGH);

  UCB0TXBUF = dataHi;
  while (UCB0STAT & BUSY);
  readData |= (UCB0RXBUF << 8);

  UCB0TXBUF = dataLo;
  while (UCB0STAT & BUSY);
  readData |= UCB0RXBUF;
  digitalWrite(P8_1, LOW);
  readData &= 0x7FFF;

  return readData;
}

void Initialize()
{
  //CTRL Register defaults
  unsigned char CTRLdataHi, CTRLdataLo;
  CTRLdataHi = 0x0C;
  CTRLdataLo = 0x05;
  WriteSPI(CTRLdataHi, CTRLdataLo);

  //TORQUE defaults
  unsigned char TORQUEHi, TORQUELo;
  TORQUEHi = 0x13;
  TORQUELo = 0x1F;
  WriteSPI(TORQUEHi, TORQUELo);

  //OFF defaults
  unsigned char OFFHi, OFFLo;
  OFFHi = 0x20;
  OFFLo = 0xF0;
  WriteSPI(OFFHi, OFFLo);

  //BLANK defaults
  unsigned char BLNKHi, BLNKLo;
  BLNKHi = 0x31;
  BLNKLo = 0xF0;
  WriteSPI(BLNKHi, BLNKLo);

  //DECAY defaults
  unsigned char DECAYHi, DECAYLo;
  DECAYHi = 0x41;
  DECAYLo = 0x10;
  WriteSPI(DECAYHi, DECAYLo);

  //STALL defaults
  unsigned char STALLHi, STALLLo;
  STALLHi = 0x53;
  STALLLo = 0x40;
  WriteSPI(STALLHi, STALLLo);

  //DRIVE defaults
  unsigned char DRIVEHi, DRIVELo;
  DRIVEHi = 0x60;
  DRIVELo = 0x0F;
  WriteSPI(DRIVEHi, DRIVELo);

  //STATUS defaults
  unsigned char STATUSHi, STATUSLo;
  STATUSHi = 0x70;
  STATUSLo = 0x00;
  WriteSPI(STATUSHi, STATUSLo);
}

void getCurrentRegisters()
{
  Serial.print("\n-----------------------------------------------\n");
  Serial.print("CTRL register ");
  Serial.print(WriteSPI(0x80, 0x00),HEX);
  Serial.print("\n");

  Serial.print("TORQUE register ");
  Serial.print(WriteSPI(0x90, 0x00),HEX);
  Serial.print("\n");

  Serial.print("OFF register ");
  Serial.print(WriteSPI(0xA0, 0x00),HEX);
  Serial.print("\n"); 

  Serial.print("BLANK register ");
  Serial.print(WriteSPI(0xB0, 0x00),HEX);
  Serial.print("\n");

  Serial.print("DECAY register ");
  Serial.print(WriteSPI(0xC0, 0x00),HEX);
  Serial.print("\n");

  Serial.print("STALL register ");
  Serial.print(WriteSPI(0xD0, 0x00),HEX);
  Serial.print("\n");

  Serial.print("DRIVE register ");
  Serial.print(WriteSPI(0xE0, 0x00),HEX);
  Serial.print("\n");

  //Serial.print("STATUS register ");
  //Serial.print(WriteSPI(0xF0, 0x00),HEX);
  //Serial.print("\n-----------------------------------------------\n");
}

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Fernando、可能是 Energia IDE 带来的问题。 我已经复制了你们的代码、并成功地将其部署到了 LP 中。 您能否共享跳线配置?

    -Brian

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    可以、我有一个从笔记本电脑 USB 端口连接到 LP micro USB 端口的跳线。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    否、表示 LaunchPad 本身上的跳线设置。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    啊、好的、抱歉。 LP 连接到 COM12、即我的笔记本电脑与 LP 之间的 UART 通信。 如下图所示。

    在 Energia 上选择该端口。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Fernando、您好、 调试连接好像正在运行、很好。 回顾您的错误、看起来您可能在 IDE 方面遗漏了一些内容、因为这是在编译期间引发的错误。 是否可以彻底重新安装并确保拥有所需的头文件库?