Code Composer Studio:输入xlsx文件到输出wav文件

问题描述

我不知道你们中有多少人已经使用或目前使用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 (将#修改为@)