我对 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);
}
}
}