工具/软件:TI C/C++编译器
我已经将一个.PCM 文件转换为一个.wav 文件并知道它的声音。 将.PCM 文件转换为.csv 文件并读取.csv 文件的图形以表示声音文件的声音幅度后、我现在尝试了解如何输入.csv 文件、 然后输出.wav 文件并查看它是否听起来相同。 但是、每次我使用 Code Composer Studio v.10调试程序时、它都会跳过 while 循环。 是否有人看到我的代码中的错误位置以及我缺少的内容? 基本上、我对.PCM 至.csv 和.PCM 至.wav 转换使用了相同的代码、只是我切换了文件路径、但它不起作用。 如果有任何帮助,我会非常感激…
下面是我的代码...
--------------------------------------------------------------------
/*
* fileIOTest.c
*
*创建日期:2012年3月10日
*作者:BLEE
*
*对于"实时数字信号处理:
*基础知识、实施和应用、第三版"
*作者:Sen M. Kuo、Bob H. Lee 和 Wenshun Tian
*出版商:John Wiley and Sons、Ltd
*
#include
#include
#include "tidtypes.h"
uint8 waveHeader[44]={// WAV 文件头的44字节
0x52、0x49、0x46、0x46、0x00、 0x00、0x00、0x00、
0x57、0x41、0x56、0x45、0x66、 0x6D、0x74、0x20、
0x10、0x00、0x00、0x00、0x01、 0x00、0x01、0x00、
0x40、0x1F、0x00、0x00、0x80、 0x3E、0x00、0x00、
0x02、0x00、0x10、0x00、0x64、 0x61、0x74、0x61、
0x00、0x00、0x00、0x00};
#define 大小1024
uint8 ch[size];//声明实验的 char[1024]数组
void main()
{
文件*FP1,*FP2;//文件指针
uint32 i;
//unsigned int j;//用作计数器的 unsigned long 整数
printf ("Exp. 1.2 --文件 io\n");
FP1 = fopen ("E:\\Code Composer Studio Workspace\\EE489\\Lab1_FileIO_1_\out.xlsx"、"rb");//打开输入文件
//fp1 = fopen ("..\\.cproject"、"rb");//打开输入文件
fp2 = fopen ("E:\\Code Composer Studio Workspace\\EE489\\Lab1_FileIO_1\\output\\C55DSPUSBStickAudioTest.wav"、"WB");//打开输出文件
如果(FP1 =NULL)//检查输入文件是否存在
{
printf ("打开输入文件'out.xlsx'\n"\n 失败);
EXIT (0);
}
fseek (fp2、44、0);//高级输出文件点44字节
I=0;
while (fread (ch、sizeof (UINT8)、size、FP1)=size)//以输入数据字节的大小读取
{
// fread (ch、sizeof (uint8)、size、fp1);
// j++;
fwrite (ch、sizeof (UINT8)、size、fP2);//将数据字节的大小写入输出文件
//fwrite (ch、sizeof (UINT8)、size、FP3);//将数据字节的大小写入输出文件
i +=大小;
printf ("%ld 字节已处理\n"、i);//显示已处理的数据数
}
waveHeader[40]=(uint8)(I&0xff);//将 size 参数更新为 WAV 标题
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];
回卷(FP2);//将输出文件点调整为开始
fwrite (waveHeader、sizeof (UINT8)、44、FP2);//将44字节 WAV 报头写入输出文件
fclose (FP1);//关闭输入文件
fclose (FP2);//关闭输出文件
printf ("\nExp --已完成\n");
}
--------------------------------------------------------------------