硬汉嵌入式论坛

 找回密码
 立即注册
查看: 1952|回复: 1
收起左侧

请教下,我把24bit的wav转换成16bit后播放,只有前2-3s有声音,没有声音,貌似只有噪音出来?

[复制链接]

692

主题

3576

回帖

5677

积分

论坛元老

积分
5677
发表于 2017-12-31 18:01:25 | 显示全部楼层 |阅读模式
请教下,我把24bit的wav转换成16bit后播放,没有声音,貌似只有噪音出来?

程序播放 16bit 的wav 完全正常,包括单、双声道

唯独吧 24bit 转换成 16bit就不行,dma配置还是按照 16bit的进行配置的,

24bit转换成 16bit的代码如下:

        /* 24位音频转换为16位进行播放,SAI音频接口的24位音频播放暂时未解决 */
        if(usBitsPerSample == 24)
        {
                /* 需要读取的字节数 */
                NumBytesReq=(_usSize / 2) * 3;                                               

                f_read(_pFile, _ptrtemp, NumBytesReq, (UINT*)&NumBytesRead);       
                p = _ptrtemp;
                for(i = 0; i < _usSize; i += 2, p += 3)
                {
                        _ptr[i]   = p[1];
                        _ptr[i+1] = p[2];
                }
               
                /* 实际需读取的字节数 */
                NumBytesRead = (NumBytesRead / 3) * 2;               
        }



声音貌似就是刚开始2-3s的时间正常,之后就出现噪音了 ,这个是怎么个情况啊 ????

/*
配置SAI dma 参数
_BitPerSample   音频位数
_SampleRate     音频采样率
_DataLen        数据长度
_ucChannelMode  单、双通道
*/
static void WAVE_SaiConfInit(uint16_t _BitPerSample, uint32_t _SampleRate, uint32_t _DataLen , uint8_t _ucChannelMode)
{
  if((_BitPerSample == 8) || (_BitPerSample == 16) || (_BitPerSample == 24))   // wav 音频 8bit / 16bit / 24bit(把24bit转换成16bit播放)
  {
    WM8978_I2S_Cfg(I2S_MODE_PHILIPS,I2S_MODE_CFG_16BIT);          //飞利浦标准,16位数据长度
    SAIA_Init(SAI_MODEMASTER_TX,SAI_CLOCKSTROBING_RISINGEDGE,SAI_DATASIZE_16, _SampleRate, _ucChannelMode);

    SAIA_TX_DMA_Init(audiodev.i2sbuf1,
                     audiodev.i2sbuf2,
                     _DataLen / 2,          //  /2是因为dma发送是以16bit的格式发送的,不是字节数,DMA样本为32位
                     SAI_DMA_WIDTH_16BIT);  //配置TX DMA,16位,
  }

}

回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117546
QQ
发表于 2018-1-1 00:05:38 | 显示全部楼层
没问题,我们的V6板子,我就是这么干的。估计是你的配置哪里还是有问题,查查。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-8-14 01:11 , Processed in 0.034571 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表