初级会员

- 积分
- 159
- 金钱
- 159
- 注册时间
- 2016-5-1
- 在线时间
- 25 小时
|

楼主 |
发表于 2016-12-18 20:30:04
|
显示全部楼层
[mw_shl_code=applescript,true]void VS_SPI_SpeedHigh(void)
{
SPI1_SetSpeed(SPI_BaudRatePrescaler_8);//设置到高速模式
}
[/mw_shl_code]
VS1053板子晶振是12.288 3倍频 所以clk就是大于36M的,,根据数据手册写入操作时允许clk/4 也就是9M多,,
STM32F1的SPI1速度是72M,,那么8分频,就是9M,SPI速度应该是到极限了呀。
难道是SD卡速度??
设置函数在这
[mw_shl_code=applescript,true]void SD_SPI_SpeedHigh(void)
{
SPI1_SetSpeed(SPI_BaudRatePrescaler_2);//设置到高速模式
}[/mw_shl_code]
[mw_shl_code=applescript,true] if(res==0)//打开成功.
{
VS_SPI_SpeedHigh(); //高速
while(rval==0)
{
SD_SPI_SpeedHigh();
res=f_read(fmp3,databuf,4096,(UINT*)&br);//读出4096个字节
VS_SPI_SpeedHigh();
i=0;
do//主播放循环
{
if((VS_Send_MusicData(databuf+i)==0)&&(pause==0))//给VS10XX发送音频数据
{
i+=32;
}else
{
// key=KEY_Scan(0);
// switch(key)
// {
// case KEY0_PRES:
// rval=KEY0_PRES; //下一曲
// break;
// case KEY1_PRES:
// rval=KEY1_PRES; //上一曲
// break;
// case WKUP_PRES: //暂停/播放
// pause=!pause;
// break;
// default:
// break;
// }
mp3_msg_show(fmp3->fsize);//显示信息
}
}while(i<4096);//循环发送4096个字节
if(br!=4096||res!=0)
{
rval=0;
break;//读完了.
}
}
f_close(fmp3);
}[/mw_shl_code]
最后都这样,怕SD卡速度不够,先I设置为2分频(36M)进行读取数组,然后设置为9M发送数据给VS1053 |
|