1

我对 arduino 编程非常陌生,但我被赋予了一项非常复杂的任务来完成它。我的同学正在为 Windows 编写一个 Visual Basic 程序。我的计划是与他一起工作。需要发生的是,当他向 arduino 发送“receive int”(结束字符为 '\0')时,我必须让 arduino 设置接收两个不同的四个项目列表。其中一个是名称列表,另一个是字节值,它将在我们正在使用的 Mega 的端口 L 上设置输出。顺序是名称,然后是字节四次。然后必须将这四个名称放入一个数组中,并将字节放入一个单独的数组中,以便我可以同时访问它们的元素。歌曲 1,字节 1。歌曲 2 带有字节 2,等等。他将在每个项目之后发送 '\0' 以表示过渡到下一个。如果他发送“send int”后跟“\0”,我还必须设计一些东西,这会将我的数组中的项目加载回他的程序,仍然使用“\0”作为每个单独项目信号的结尾,并且在相同的顺序。列表项然后字节,四次。这些阵列还需要保存到 EEPROM 中,这样 arduino 就可以在远离计算机的情况下使用这些信息执行其他任务。这意味着当程序需要信息时,也必须从 EEPROM 中提取信息。我下载了 EEPROMex 库,我想我可以做到这一点,但到目前为止,我的沟通努力没有产生任何结果。下面是我迄今为止拼凑的代码副本。任何帮助将不胜感激。这是我用来尝试的循环。这会将我数组中的项目加载回他的程序,仍然使用 '\0' 作为每个单独项目信号的结尾,并且顺序相同。列表项然后字节,四次。这些阵列还需要保存到 EEPROM 中,这样 arduino 就可以在远离计算机的情况下使用这些信息执行其他任务。这意味着当程序需要信息时,也必须从 EEPROM 中提取信息。我下载了 EEPROMex 库,我想我可以做到这一点,但到目前为止,我的沟通努力没有产生任何结果。下面是我迄今为止拼凑的代码副本。任何帮助将不胜感激。这是我用来尝试的循环。这会将我数组中的项目加载回他的程序,仍然使用 '\0' 作为每个单独项目信号的结尾,并且顺序相同。列表项然后字节,四次。这些阵列还需要保存到 EEPROM 中,这样 arduino 就可以在远离计算机的情况下使用这些信息执行其他任务。这意味着当程序需要信息时,也必须从 EEPROM 中提取信息。我下载了 EEPROMex 库,我想我可以做到这一点,但到目前为止,我的沟通努力没有产生任何结果。下面是我迄今为止拼凑的代码副本。任何帮助将不胜感激。这是我用来尝试的循环。这些阵列还需要保存到 EEPROM 中,这样 arduino 就可以在远离计算机的情况下使用这些信息执行其他任务。这意味着当程序需要信息时,也必须从 EEPROM 中提取信息。我下载了 EEPROMex 库,我想我可以做到这一点,但到目前为止,我的沟通努力没有产生任何结果。下面是我迄今为止拼凑的代码副本。任何帮助将不胜感激。这是我用来尝试的循环。这些阵列还需要保存到 EEPROM 中,这样 arduino 就可以在远离计算机的情况下使用这些信息执行其他任务。这意味着当程序需要信息时,也必须从 EEPROM 中提取信息。我下载了 EEPROMex 库,我想我可以做到这一点,但到目前为止,我的沟通努力没有产生任何结果。下面是我迄今为止拼凑的代码副本。任何帮助将不胜感激。这是我用来尝试的循环。下面是我迄今为止拼凑的代码副本。任何帮助将不胜感激。这是我用来尝试的循环。下面是我迄今为止拼凑的代码副本。任何帮助将不胜感激。这是我用来尝试的循环。

 while (Serial.available() > 0) {
buffer[buffindex++] = Serial.read();
if (buffindex == MAX_BUFF_SIZE) {
  buffindex=0;
  return;
  }
if (buffindex > 6 && Serial.read() == '\0') {
  if (buffer == upload) {
    for (x = 0; x < 4; x++) {
      Serial.print(songlist[x]);
      Serial.print('\0');
      Serial.print(mypedal[x]);
      Serial.print('\0');
    }
  }

  if (buffer == download) {
    for (y = 0; y < 4; y++) {
      Serial.readBytesUntil('\0', mysong, 25);
      songlist[y] = mysong;
      Serial.readBytesUntil('\0', mysong, 25);
      mypedal[y] = int(mysong);
    }
    address1 = 0;
    address2 = 4000;
    EEPROM.updateBlock(address1, songlist, 4);
    EEPROM.updateBlock(address2, mypedal, 4);
  }
}

}

4

0 回答 0