我有一个来自8的字符串,但是我想导入到Arduino项目中的WAV文件。我这样宣布
const unsigned char sounddata_data[] PROGMEM = "€€[fill these brackets in with 6500 other characters]";
当我尝试运行此代码时,编译器不会给我任何错误。它只是挂起而从未完成编译。我知道这是这行,因为如果我使用较短的字符串或其他类型的声明(例如在每个字符之间添加逗号)来声明它,则它可以工作。
Arduino代码中有行长限制吗?
如果我必须接受这一点并在每个字符之间加上逗号,是否有一个好的方法?
我总是可以编写一个简单的程序来执行此操作,但是我有许多声音文件要转换,因此我想使读取代码变得容易和简单。
编辑
我最终只写了程序。它将每个数据字节转换为以逗号分隔的
int
。仍然令我感到困扰的是,旧的方法行不通,这将花费更多的时间,但至少我有一些可以依靠的方法#include <stdio.h>
int main(int argc, char *argv[]) {
FILE *r, *w;
unsigned char ch;
r = fopen(argv[1], "rb");
w = fopen("out.txt", "w");
while (fscanf(r, "%c", &ch) != EOF) {
fprintf(w, "%d, ", (int)ch);
}
return 1;
}
最佳答案
如果是行长问题,则可以像这样拆分字符串:
const unsigned char sounddata_data[] PROGMEM = "€€[fill these brackets "
"in with 6500 "
"other chars]";
关于c - 声音字符串声明挂起Arduino编译器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9645169/