本帖最后由 adlu 于 2015-12-28 10:18 编辑
问题已解决。【注:只解决了16位播放问题,24位32位播放仍有问题,请看后续补充问题】
解决方法:在每次重新设置I2S和CODEC波特率之后,先将DMA传输缓冲清空,然后启动DMA传输。延迟一定时间(几十ms),然后检测SPI寄存器,确认I2S格式没有出错,再进行音频文件的读取播放。
如果I2S格式错误,则关闭DMA传输,然后再重启DMA传输,延迟一定时间,再检测SPI寄存器确认I2S格式。。。如此循环N次,直到成功。
本帖最后由 adlu 于 2015-12-28 10:18 编辑
问题已解决。【注:只解决了16位播放问题,24位32位播放仍有问题,请看后续补充问题】
解决方法:在每次重新设置I2S和CODEC波特率之后,先将DMA传输缓冲清空,然后启动DMA传输。延迟一定时间(几十ms),然后检测SPI寄存器,确认I2S格式没有出错,再进行音频文件的读取播放。
如果I2S格式错误,则关闭DMA传输,然后再重启DMA传输,延迟一定时间,再检测SPI寄存器确认I2S格式。。。如此循环N次,直到成功。
举报