如何在I2S上播放音频剪辑?(da7212编解码器)

⚠️
嗨,...感谢您来论坛。令人兴奋的消息!我们现在正在迁至我们的新论坛平台,将提供更好的功能,并包含在主对话框网站中。所有帖子和帐户都已迁移。我们现在只接受新论坛上的流量 - 请发布任何新线程https://www.dialog-seminile.com/support.。我们将在未来几天修复错误/优化搜索和标记。
7个帖子/ 0新
最后一篇
Manisrinvas.
离线
最后一次露面:1年4个月前
加入:2018-11-19 12:45
如何在I2S上播放音频剪辑?(da7212编解码器)

大家好,

我想在i2s上播放音频剪辑,如短音频剪辑 - 连接到设备,断开连接等。我转换了.wav文件到c-代码(即时使用Wavtoc软件来转换C代码)并存储在闪存中。下面我附上了.wav to c代码文件。

我正在使用da7212编解码器通过I2S播放这些音频剪辑。

这些音频剪辑具有8K采样率,每个样本16位比特。3500左右的样品总数。

我尝试了中断方法来传输512bytes的数据,请检查以下代码

  1. 元素数为3500个样本
  2. 无符号短powerondata [num_elements] = {---------};包含3500个样本值,
  3. uint16_t * firstarray = stereo_aud_data;//数据存储立体声格式
  4. unsigned short stereo_aud_data [2 * num_elements];

void conncetaud(){

INT I = 0;

//以立体声格式存储数据

for(int i = 0; i

stereo_aud_data [(i * 2)] = powerondata [i];//剩下

stereo_aud_data [(i * 2)+1] = powerondata [i];//正确的

}

firstarray = stereo_aud_data;

而(我<15){

if(hal_i2s_getstate(&codec_i2s)== hal_i2s_state_ready){

hal_i2sex_transmitreceive_it(&codec_i2s,firstarray,rxbuffer,512);//将在此处获取回调事件-al-hal_i2sex_txrxcpltcallback

显示((“语音提示:%d \ n”,* firstarray));

I ++;

Osdelay(200);

}

}

}

3.更新调用呼叫函数中的数据。

void hal_i2sex_txrxcpltcallback(i2s_handletypedef * hi2s){

Firstarray + = 512;

}

我确定我正确配置了Codec寄存器,我可以播放音乐和所有连接到BT。我正在使用STM32F4系列微控制器,DA7212连接到此控制器。

设备:
BMCADAM.
离线
最后一次露面:1个月5天前
职员
加入:2015-09-16 16:25
下午,

下午,

已附加了寄存器的设置文件,写入i2c到hp使用“这些音频剪辑具有8k采样率,16位每个样本。”

问候,

Manisrinvas.
离线
最后一次露面:1年4个月前
加入:2018-11-19 12:45
谢谢你回复,

谢谢你回复,

初始设置类似于Mine寄存器设置。我已经用语音提示测试了“电源”,但它不起作用。

您测试过哪些数据?或者用音调测试测试?

BMCADAM.
离线
最后一次露面:1个月5天前
职员
加入:2015-09-16 16:25
它用音乐测试了

它用音乐文件进行了测试。

Manisrinvas.
离线
最后一次露面:1年4个月前
加入:2018-11-19 12:45
好的,

好的,
音乐文件通过i2s存储在SD卡中,您可以播放。我的鄙视是正确的吗?

但我想通过一系列样本在I2S上播放音频剪辑,该样本存储在闪存中。

BMCADAM.
离线
最后一次露面:1个月5天前
职员
加入:2015-09-16 16:25
听起来这是软件

它听起来这是相关的软件,而不是DA7212的操作。

Manisrinvas.
离线
最后一次露面:1年4个月前
加入:2018-11-19 12:45
是的,这将是问题

是的,它将在固件中发出问题。我试试后让你知道