完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
原子哥,是这样子的。我仿照你们的音乐播放器例程写了个程序,但是我是把音乐文件下载到W25Q128里面,然后没有用FATS,而是直接从W25Q128里面读取音乐文件发送到VS1053的。音乐可以播放,但是就是播放MP3时中间会不间断常出现GUGU或JIOJIO的声音,每次出现的地方和声音都一样,不是随机的。播放WAV就更惨了,好多收音机收不到台那种沙沙的背景声音。这个跟VS1053的设置有没有关系呀,还是说程序上需要有什么改进的呀?下面是我播放音乐的代码,原子哥根据经验帮我分析下可能是什么原因呀?
int audio_play(uint8_t num) { uint8_t *databuf; uint8_t temp,i; uint32_t datacount,datasize; //分配一个缓冲区 databuf=(uint8_t*)malloc(4096*sizeof(uint8_t)); if(databuf==NULL) return -1; //检测指定文件是否存在(一个文件占用1M空间) W25QXX_Read(&temp,SOUNDSTART+num*16*0x10000,1); if(temp!=0xaa) return -2; //读出文件大小信息(4个字节的空间保存文件大小) datasize=0; for(i=0;i<4;i++) { W25QXX_Read(&temp,SOUNDSTART+num*16*0x10000+i+1,1); datasize<<=8; datasize|=temp; } //进行复位 VS_HD_Reset(); VS_Soft_Reset(); //重启播放 VS_Restart_Play(); //设置音量等信息 VS_Set_All(); //复位解码时间 VS_Reset_Decodetime(); //设置VS1053高速发送数据 VS_SPI_SpeedHigh(); //关闭功放 VS_SPK_Set(0); //将文件按照4096字节大小复制到缓冲区中 datacount=0; while(1) { //如果剩余文件超过4096字节,则复制4096字节的音频数据出来 if((datasize-datacount)>=4096) { memset(databuf,0,4096); W25QXX_Read(databuf,SOUNDSTART+num*16*0x10000+5+datacount,4096); datacount+=4096; //播放音频数据流 for(i=0;i<128;i++)//播放4096字节的音频数据 { VS_Send_MusicData(databuf+i*32); } continue; } else { memset(databuf,0,4096); W25QXX_Read(databuf,SOUNDSTART+num*16*0x10000+5+datacount,datasize-datacount); //发送最后一包音频文件 temp=(datasize-datacount)/32+1; datacount=datasize; for(i=0;i } } //释放内存空间 free(databuf); databuf=NULL; return 0; } |
|
相关推荐
5个回答
|
|
也有可能你写入W25Q的数据就已经错了
|
|
|
|
VS_Send_MusicData的发送,要等待DREQ才能发哦
|
|
|
|
VS_Send_MusicData函数用的是你们的例程,里面有等待DREQ。会不会是读W25Q128的时候数据断流,但是每次都是同样的地方,感觉好奇怪,像是文件本身的问题,电脑上播放又没有问题。
|
|
|
|
我是用XMODEM协议将文件写入W25Q128的,用同样的方式下载过字库也没有问题。都是同样的发送音频文件数据给1053,怎么WAV完全没法播放,全是一片嚓嚓的噪声,MP3虽然中间会有点间断,但是播放完全没有问题呢。
|
|
|
|
果然是写进W25Q的数据有问题....问题就出在我每次接受到一个数据包后尝试去通过0x1A判断文件是否结束.....就是这个0x1A导致传输过程中程序误认为文件结束而没有把0x1A写进去。。。实际上这个0x1A是文件的一部分....
|
|
|
|
只有小组成员才能发言,加入小组>>
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 16:06 , Processed in 0.603914 second(s), Total 52, Slave 45 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号