五星彩票网平台登录: [DSP] eZdsp5535

开心8网址官网官方网
180|2
楼主
 楼主 | 2020-6-18 22:08 | 只看该作者 ||退出气泡模式 |倒序浏览 |阅读模式


  1. /**
  2. * main.c
  3. */
  4. #include <stdio.h>
  5. #include <stdlib.h>
  6. #include "tistdtypes.h"

  7. Uint8 waveHeader[44] = {
  8.     0x52, 0x49, 0x46, 0x46, 0x00, 0x00, 0x00, 0x00,
  9.     0x57, 0x41, 0x56, 0x45, 0x66, 0x6D, 0x74, 0x20,
  10.     0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00,
  11.     0x40, 0x1F, 0x00, 0x00, 0x80, 0x3E, 0x00, 0x00,
  12.     0x02, 0x00, 0x10, 0x00, 0x64, 0x61, 0x74, 0x61,
  13.     0x00, 0x00, 0x00, 0x00
  14. };

  15. #define SIZE 1024
  16. Uint8 ch[SIZE];

  17. int main(void)
  18. {
  19.     FILE *fp1, *fp2;
  20.     Uint32 i;
  21.     printf("Exp. 1.2 --- file IO\n");
  22.     fp1 = fopen("..\\data\\C55DSPUSBStickAudioTest.pcm", "rb");   
  23.         if (fp1 == NULL) {
  24.         printf("Failed to open output file 'C55DSPUSBStickAudioTest.pcm'\n");
  25.         exit(0);
  26.     }

  27.     fp2 = fopen("..\\data\\C55DSPUSBStickAudioTest.wav", "wb");


  28.     fseek(fp2, 44, 0);
  29.     i = 0;
  30.     size_t a = fread(ch, sizeof(Uint8), SIZE, fp1);
  31.     Uint8 b = sizeof(Uint8);
  32. //    while(fread(ch, sizeof(Uint8), SIZE, fp1) == SIZE)
  33.     while(a == SIZE)
  34.     {
  35.         fwrite(ch, sizeof(Uint8), SIZE, fp2);
  36.         i += SIZE;
  37.         printf("%ld bytes processed\n", i);
  38.     }

  39.     waveHeader[40] = (Uint8)(i&0xff);
  40.     waveHeader[41] = (Uint8)(i >> 8) & 0xff;
  41.     waveHeader[42] = (Uint8)(i >> 16) & 0xff;
  42.     waveHeader[43] = (Uint8)(i >> 24) & 0xff;
  43.     waveHeader[4] = waveHeader[40];
  44.     waveHeader[5] = waveHeader[41];
  45.     waveHeader[6] = waveHeader[42];
  46.     waveHeader[7] = waveHeader[43];

  47.     rewind(fp2);
  48.     fwrite(waveHeader, sizeof(Uint8), 44, fp2);
  49.     fclose(fp1);
  50.     fclose(fp2);

  51.     printf("\nExp. completed\n");
  52.         return 0;
  53. }
复制代码


使用仿真器调试,五星彩票网平台登录:fread总是返回0。文件路径没有问题。实在是不解,请大神指教。
沙发
 楼主 | 2020-6-18 22:09 | 只看该作者
自己顶
板凳
| 2020-6-30 22:29 | 只看该作者
都改成char型读取,取其低8位做拼接。例如:
#define FRAME_SZ 256
typedef short Word16;
typedef char Word8;
Word16 signal[FRAME_SZ];
原始代码是fread(signal, sizeof(Word16), FRAME_SZ, fp); // 不能工作修改后代码Word8 tmp[2*FRAME_SZ];
// 缓存区fread(tmp, sizeof(Word8), 2*FRAME_SZ, fp);// 字节拼接
for (i=0; i<FRAME_SZ;i++) signal[i] = (tmp[2*i+1]<<8) | tmp[2*i];希望有所帮助。
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 投诉建议 创建版块 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

开心8网址官网官方网 永利游戏开户直营 返回顶部 返回列表
申博太阳城游戏进不了登入 老挝华人赌博 澳门鬼妹专门店官网登入 抗振幅注码法 开心8网址官网官方网
澳门太阳城上海时时乐开奖直播 澳门赌场哪个比较好玩 澳门太阳城SUNBET申博开奖号历史 棋牌游戏能赚钱吗 tt江西时时彩走势
水舞间 上海 澳门赌城成功案例网上娱乐场 申博bet手机APP下载 国际馆赌船 这些手机赌博网站登入
重庆时时彩官方网址登入 鸿胜国际 首页网上娱乐场 金沙电子游戏直营登入 娱乐城开业口号网上娱乐场 申博娱乐平台官网游戏