声卡实验里面IsocOutWrPtr和IsocOutRdPtr两个指针的用处?

2019-07-20 21:31发布

      探索者407开发板的声卡实验里面这两个指针不太明白是什么意思,读完代码我理解因为接收的音频流是48KHz,而片内IIS的分频只能做不到48KHz,直接透传会造成音频混叠。所以才在出现混叠帧的时候要抛弃一帧内容。不知道原子的最初设计是不是这样
      我还发现声卡实验视频里最后演示的实验用的两个歌曲“大海”“i can‘t tell you why”的音频文件格式是44.1KHz和92KHz。所以我认为只要播放设备的标识符设置为48KHz,PC在下发音频流的时候会自动转成48KHz。
      所以我假设我的设备和codec声卡都设置为同样的采样频率和格式比如都是16K采样,24bit。那么不需要在arm里面把不同采样的音频流进行裁剪。@正点原子
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
20条回答
czdspeed
2019-07-21 00:22
lvehe 发表于 2016-6-13 20:50
在usbd_audio_DataOut函数中,IsocOutWrPtr首先指向IsocOutBuff起始位置,并开始接收电脑传传输过来的音频 ...

这位大哥给我的提示不少,都很受用,我这方面还要多想你取经。如果usb会进行重采样的话,那我其实不需要修改描述符为指定采样率,直接将buff的数据进行3取一或者二取一就可以获得16K或者24K的输出。然后只要把iis的总线和dma中断的搬运buf的长度做相应的修改就可以了。

一周热门 更多>