是这样,战舰开发板上的MP3历程和网络历程已经合在一起,SD卡改成SDIO模式,现在可以通过网络发送歌曲名进行播放。
问题是这样,当歌曲正在播放的时候,网络有数据发送的时候就会卡死,感觉是是中断优先级的问题,
相关代码:
res = f_read(fmp3, databuf, 4096, (UINT*)&br);//读出4096个字节
i = 0;
do//主播放循环
{
if(VS_Send_MusicData(databuf + i)== 0)//给VS10XX发送音频数据
{
i+=32;
}
//在此处添加代码
if(tcp_server_sta&(1<<6))//收到新的数据
{
if( 0 == strcmp("+", (const TCHAR*)tcp_server_sta))
{
if(vsset.mvol<250)
{
vsset.mvol+=5;
VS_Set_Vol(vsset.mvol);
}else vsset.mvol=250;
tcp_server_sta&=~(1<<6);//标记数据被处理
}
在播放的同时监视网络的数据
下面是NVIC_Configuration()函数:
// NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
NVIC_InitTypeDef NVIC_InitStructure;
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
NVIC_InitStructure.NVIC_IRQChannel = SDIO_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;//抢占优先级1
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; //子优先级2
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
我想在播放Mp3的时候可以接收到网络的数据并且处理,这里应该如何配置呢?
再此先谢过,大家了。小弟弄好之后会将代码上传。
|