问题描述
我不知道你们中有多少人已经使用或目前使用Code Composer Studio,但在我的特殊情况下,我将其用于带有TMS320C5505微控制器/数字信号处理器的高级DSP顶峰项目课程( ezDSP USB记忆棒,更具体地说)。它使用C / C ++编译器。所以我们开始...
我已经将.pcm文件转换为.wav文件,并且知道声音文件的发音,因此成功了。在将.pcm文件转换为.xlsx文件并输出.xlsx文件的图形作为声音文件的声音大小的表示之后,我现在试图弄清楚如何输入相同的.xlsx文件,然后输出.wav文件,看看是否听起来相同。但是,每次使用Code Composer Studio v.10调试程序时,它总是会跳过while循环,在循环中,数据从一种格式映射到另一种格式。有人看到我的代码中的错误以及我所缺少的内容吗?基本上,我将相同的代码用于.pcm到.xlsx以及.pcm到.wav的转换,除了我切换了文件路径并删除了第3个文件指针,但它不起作用。任何帮助将不胜感激...
这是我的下面的代码...
#include <stdio.h>
#include <stdlib.h>
#include "tistdtypes.h"
Uint8 waveHeader[44]={ // 44 bytes for WAV file header
0x52,0x49,0x46,0x00,0x57,0x41,0x56,0x45,0x66,0x6D,0x74,0x20,0x10,0x01,0x40,0x1F,0x80,0x3E,0x02,0x64,0x61,0x00};
#define SIZE 1024
Uint8 ch[SIZE]; // Declare a char[1024] array for experiment
void main()
{
FILE *fp1,*fp2; // File pointers
Uint32 i;
//unsigned int j; // Unsigned long integer used as a counter
printf("Exp. 1.2 --- file IO\n");
fp1 = fopen("E:\\Code Composer Studio Workspace\\EE489\\Lab1_FileIO_1\\OUT.xlsx","rb"); // Open input file
//fp1 = fopen("..\\.cproject","rb"); // Open input file
fp2 = fopen("E:\\Code Composer Studio Workspace\\EE489\\Lab1_FileIO_1\\output\\C55DSPUSBStickAudioTest.wav","wb"); // Open output file
if (fp1 == NULL) // Check if the input file exists
{
printf("Failed to open input file 'OUT.xlsx'\n");
exit(0);
}
fseek(fp2,44,0); // Advance output file point 44 bytes
i=0;
while (fread(ch,sizeof(Uint8),SIZE,fp1) == SIZE) // Read in SIZE of input data bytes
{
// fread(ch,fp1);
// j++;
fwrite(ch,fp2); // Write SIZE of data bytes to output file
//fwrite(ch,fp3); // Write SIZE of data bytes to output file
i += SIZE;
printf("%ld bytes processed\n",i); // Show the number of data is processed
}
waveHeader[40] = (Uint8)(i&0xff); // Update the size parameter into WAV header
waveHeader[41] = (Uint8)(i>>8)&0xff;
waveHeader[42] = (Uint8)(i>>16)&0xff;
waveHeader[43] = (Uint8)(i>>24)&0xff;
waveHeader[4] = waveHeader[40];
waveHeader[5] = waveHeader[41];
waveHeader[6] = waveHeader[42];
waveHeader[7] = waveHeader[43];
rewind(fp2); // Adjust output file point to beginning
fwrite(waveHeader,fp2); // Write 44 bytes of WAV header to output file
fclose(fp1); // Close input file
fclose(fp2); // Close output file
printf("\nExp --- completed\n");
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)