新手入门
- 积分
- 13
- 金钱
- 13
- 注册时间
- 2019-1-20
- 在线时间
- 1 小时
|
3金钱
原子哥,大体上我是参考例程写的,改了vs1053的spi驱动为spi2,其他的基本不变,但是在播放的时候,会有杂声,并且声音非常不准,感觉是一秒的声音拉到两秒那么长了,整首曲子都是这样,换为例程又不会这样,而且音乐文件存在sd卡内,电脑播放也是没什么问题的,则会个是什么情况呀,原子哥。
#include "MusicPlayer.h"
#include "vs_1053.h"
#include "ff.h"
#include "usart.h"
#include "malloc.h"
//uint8_t databuf[1024]={0};
FIL fmp3;
void mp3_play_song(uint8_t *pname)
{
uint16_t br;
uint8_t res;
uint16_t i=0;
u8 *databuf;
VS_Restart_Play();
VS_Set_All();
VS_Reset_DecodeTime();
databuf=(u8*)mymalloc(SRAMIN,4096);
res = f_open(&fmp3,(const TCHAR*)pname,FA_READ);
printf("f_open:%d\n",res);
if(res == 0)
{
VS_SPI_SpeedHigh();
while(1)
{
res=f_read(&fmp3,databuf,4096,(UINT*)&br);
printf("f_read:%d\n",res);
i = 0;
do
{
if(VS_Send_MusicData(databuf+i) == 0)
{
i+=32;
}
}while(i<4096);
if(br!=4096||res!=0)
{
break;
}
}
}
f_close(&fmp3);
}
int main(void)
{
USART_Config();
LED_GPIO_Config();
Key_GPIO_Config();
my_mem_init(SRAMIN);
exfuns_init();
VS_Init();
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
printf("readID:%4X\n",VS_Ram_Test());
printf( "′®¿úprintfoˉêy2aêÔ\n" );
res_sd=f_mount(&fil,"0:",1);
printf("res_sd=%d\n",res_sd);
printf("readID:%4X\n",VS_Ram_Test());
VS_Sine_Test();
VS_HD_Reset();
VS_Soft_Reset();
printf("readID:%4X\n",VS_Ram_Test());
while(1)
{
mp3_play_song("0:/musicfile.mp3");
}
}
这个就是大致的代码,麻烦原子哥看看了
|
|