gpt4 book ai didi

c - 声音字符串声明挂起 Arduino 编译器

转载 作者:行者123 更新时间:2023-11-30 18:01:43 25 4
gpt4 key购买 nike

我有一串来自 8 的字符,但 WAV我正在尝试将其导入到我的 Arduino 项目中。我这样声明

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com