用16位数据长度,44.1K采样频率调试都挺正常,但是改成24位就是调不通,16位改成24位(采样频率不变)需要更改的地方:
1,设置
STM32的i2s寄存器cfgr,将数据长度改为24
2,配置wm8978的寄存器R4,将数据长度改为24
3,修改接收(录音)和发送(放音)中断函数。以录音为例,改为24位数据后需要四次中断才能接收到两个声道的24位数据以左声道的两次数据为例,按照I2S飞利浦的音频标准,将两次数据(data1,data2)做如下处理得到最终数据DATA=data1<<8+data2>>8;这里是不是有问题呢?
其它的地方就没想到了,有用过的同学请指教下啊,谢谢