大家好
我使用 CC2564C 的 AUD 演示 来连接我的定制板(MCU:STM32F401)和 NAU8814编解码器。 A2DP 工作正常、我知道声音数据会蒸制到我的定制板、但当我将声音数据传递到编解码器时、声音会损坏。
在同一电路板上播放波形文件时、编解码器工作正常、因此我认为问题可能是由解码器和编解码器之间的数据传递或播放方法引起的。 以下是 AUDDemo.c 中修改的代码:
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
在 AudDemo.c -> API InitializeAudioDecoder()中
F401
如果(_initialize (PlaybackContext.StreamConfig.StreamFormat.SampleFrequency)=0) // 初始化 NAU8814
其他
if (!Initialize_audio (PlaybackContext.StreamConfig.StreamFormat.SampleFrequency))
#endif
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
在 AUDI演 示.c -> API 解码()中
/*检查我们是否正在等待之前构建样片*/
/*我们开始播放音频。 *
if (PlaybackContext.AudioState ==正在播放)
{
/*更新可用的音频样本数量*/
要播放的//*。 *
PlaybackContext.NumAudioSamples += DecodedData.LeftChannelDataLength;
F401
bsp_audio_out_play (&PlaybackContext.LeftChannelBuffer[PlaybackContext.OutIndex]、PlaybackContext.NumAudioSamples);//Kevin 0423
其他
SPI_I2S_ITConfig (AUDIO_I2S_BASE、SPI_I2S_IT_TXE、启用);
#endif
}
其他
{
/*检查我们是否正在等待构建样片*/
//开始播放音频之前。 *
if (PlaybackContext.AudioState == asDecoding)
{
PlaybackContext.NumAudioSamples += DecodedData.LeftChannelDataLength;
/*检查我们是否有足够的样本来开始。 *
if (PlaybackContext.NumAudioSamples >=(audio_buffer_size >> 1))
{
/*现在是开始音频的时候了,所以请启用*/
/*音频中断。 *
PlaybackContext.AudioState = asPlaying;
F401
bsp_audio_out_play (&PlaybackContext.LeftChannelBuffer[PlaybackContext.OutIndex]、PlaybackContext.NumAudioSamples);//Kevin 0423
其他
SPI_I2S_ITConfig (AUDIO_I2S_BASE、SPI_I2S_IT_TXE、启用);
#endif
}
}
}
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
请提供帮助、谢谢