新手上路
- 积分
- 36
- 金钱
- 36
- 注册时间
- 2015-12-19
- 在线时间
- 4 小时
|
1金钱
最近小弟在做一个东西,我是想手机无线控制音乐播放器的。关于硬件部分主要是STM32最小系统板+无线模块+VS1053+功放电路+扬声器。现在的问题是我已经移植好了原子哥的音乐播放器的程序(没有UCOS系统)。现在已经能正常播放音乐了。可是,我想在播放音乐的同时,串口中断接收到无线数据时,能够实现自由切歌。但是,播放音乐的时候。串口中断就像瘫痪了一样,根本对无线数据没有反应,请问这是怎么回事啊?有没有知道的,求教!小弟不胜感激。***下面这个函数是我用来播放音乐的,同时也是用来切歌(不知道对不对)
u8 mp3_play_song(char list)
{
FIL* fmp3;
u16 br;
u8 res,rval;
u8 *databuf;
u16 i=0;
u8 key;
VS_HD_Reset();
printf("ó2¼t¸′λ½áêø\r\n");
VS_Soft_Reset();
vsset.mvol=250; //ĬèÏéèÖÃòôá¿Îa180.
printf("¿aê¼2¥·ÅòôàÖ\r\n");
rval=0;
fmp3=(FIL*)mymalloc(SRAMIN,sizeof(FIL));//éêÇëÄú′æ
databuf=(u8*)mymalloc(SRAMIN,4096); //¿a±ù4096×Ö½úμÄÄú′æÇøóò
if(databuf==NULL||fmp3==NULL)
{
printf("Äú′æéêÇëê§°ü\r\n");
rval=0XFF ;//Äú′æéêÇëê§°ü.
}
if(rval==0)
{
VS_Restart_Play();
VS_Set_All();
VS_Reset_DecodeTime();
switch(list)
{
case 'a':res=f_open(fmp3,"Opera2.mp3",FA_READ);break;
case 'b':res=f_open(fmp3,"Binggo.mp3",FA_READ);break;
case 'c':res=f_open(fmp3,"Billie Jean.mp3",FA_READ);break;
case 'd':res=f_open(fmp3,"Burning.mp3",FA_READ);break;
case 'e':res=f_open(fmp3,"Call Me Maybe.mp3",FA_READ);break;
case 'f':res=f_open(fmp3,"Can We Dance.mp3",FA_READ);break;
case 'g':res=f_open(fmp3,"Marry You.mp3",FA_READ);break;
default:break;
}
if(res==0)
{
VS_SPI_SpeedHigh();
while(rval==0)
{
res=f_read(fmp3,databuf,4096,(UINT*)&br);
if(res==0)
{
}
i=0;
do
{
if(VS_Send_MusicData(databuf+i)==0)
{
i+=32;
}else
{
}
}while(i<4096);
if(br!=4096||res!=0)
{
rval=0;
break;
}
}
f_close(fmp3);
}else rval=0XFF;
}
myfree(SRAMIN,databuf);
myfree(SRAMIN,fmp3);
return rval;
}
|
|