很奇怪...
在debug状态下,音乐能够正常播放,但是debug优化状态和release状态下都不能播放成功,而且没有声音,不知道怎么回事,可能是哪方面的原因呢?附上程序:
[mw_shl_code=c,true]UINT8 PlayMusic(PUINT8 pname)
{
UINT8 s;
UINT32 i;
UINT32 FileLength=0;
PUINT8 databuf=NULL;
VSInit(); //此处,必须初始化
IOWR(KEY_RECORD_OUT_BASE,0,1); //写入拉高,播放
s=CH376FileOpenPath(pname);
if(s==ERR_MISS_DIR||s==ERR_MISS_FILE){
printf("No found!\n");
return 1;
}
else{ //打开正常
FileLength=CH376GetFileSize();
printf("FileLength=%ld\n",FileLength);
databuf=(PUINT8)malloc(32*sizeof(UINT8)); //申请分配动态内存空间
if(NULL==databuf) return 1; //检查动态内存空间分配是否成功
i=0;
while(i<FileLength){
CH376ByteRead(databuf,32,NULL);
VS_Send_MusicData(databuf);
i+=32;
}
i=0;
CH376FileClose(FALSE);
IOWR(KEY_RECORD_OUT_BASE,0,0);
if(NULL!=databuf){
free(databuf);databuf=NULL; //释放分配的动态内存空间
}
return 0;
}
}[/mw_shl_code]
其中,
[mw_shl_code=c,true]UINT8 VS_Send_MusicData(PUINT8 buf)
{
UINT8 n;
while(IORD(VS_DQ_BASE,0)==0); //等待空闲
IOWR(VS_XDCS_BASE,0,0); //发送数据
for(n=0;n<32;n++)
{
Write_Vs_Byte(buf[n]);
}
IOWR(VS_XDCS_BASE,0,1); //取消发送数据
IOWR(VS_XCS_BASE,0,1);
return 0; //成功发送了
}[/mw_shl_code]
就先这样... |