首先是F4开发板采集数据的关键代码,全部是原子哥的,没有改动。
[mw_shl_code=c,true]void rec_i2s_dma_rx_callback(void)
{
int fillnum = 0;
u16 bw;
u8 res;
if(rec_sta==0X80)//录音模式
{
if(DMA1_Stream3->CR&(1<<19))
{
res=f_write(f_rec,i2srecbuf1,I2S_RX_DMA_BUF_SIZE,(UINT*)&bw);//写入文件
if(res)
{
printf("write error:%d
",res);
}
}else
{
res=f_write(f_rec,i2srecbuf2,I2S_RX_DMA_BUF_SIZE,(UINT*)&bw);//写入文件
if(res)
{
printf("write error:%d
",res);
}
}
wavsize+=I2S_RX_DMA_BUF_SIZE;
}
} [/mw_shl_code]
我想请问下:
1:i2srecbuf1和i2srecbuf2是不是就是录音数据 pcm格式的,我只需要采集这个发送给终端,设置好采样率就可以正常播放?
2:数据长度到底是I2S_RX_DMA_BUF_SIZE还是其他的,因为我需要把这个宏定义从4096改成1024,不然V3战舰会溢出。
3:V3战舰播放这段数据的时候声音异常,而且杂音不断,非常不理解,希望告知,万分感谢!顺便说下,从PC采集的音频数据可以正常给V3播放
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
2,I2S_RX_DMA_BUF_SIZE是一次传输的数据长度,也就是DMAbuf 的大小,至于到底多少,你自己定义。
3,看看是不是采样率的问题。
一周热门 更多>