m0_51317756 2024-12-25 17:57 采纳率: 0%
浏览 112
已结题

stm32驱动CS4344发送WAV数据

stm32通过I2S外设驱动CS4344发送WAV数据。实验测试输出方波,未能得到正确的波形。发送频率44KHZ,16位,双声道。WAV数据是否带符号,16位的WAV数据是高8位在后,低8位在前。而I2S发送时是高8位在前,低8位在后。数据需要处理后再发送吗?

  • 写回答

28条回答 默认 最新

  • 阿里嘎多学长 2024-12-25 17:58
    关注

    阿里嘎多学长整理AIGC生成,因移动端显示问题导致当前答案未能完全显示,请使用PC端查看更加详细的解答过程

    stm32驱动CS4344发送WAV数据

    你遇到的问题是:使用stm32通过I2S外设驱动CS4344发送WAV数据,但输出方波,未能得到正确的波形。

    根据你的描述,发送频率为44KHZ,16位,双声道,WAV数据是否带符号,16位的WAV数据是高8位在后,低8位在前。

    解决方案:

    1. 检查I2S外设的配置是否正确,确保I2S的数据格式、采样率、通道数等参数都正确。
    2. 检查WAV数据是否正确,确保数据是否带符号,高8位在后,低8位在前。
    3. 检查CS4344的配置是否正确,确保CS4344的数据格式、采样率、通道数等参数都正确。
    4. 检查stm32的I2S发送代码是否正确,确保发送数据是否正确,是否有错误的数据发送。

    核心代码:

    // I2S发送数据
    void I2SSendData(uint16_t *data, uint32_t len) {
        uint32_t i = 0;
        while (i < len) {
            // 发送数据
            I2S_SendData(I2S_HandleTypeDef *hi2s, uint16_t data);
            i++;
        }
    }
    

    注意:上述代码只是一个示例代码,实际情况中可能需要根据具体的stm32和CS4344的配置和参数进行修改。

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 12月26日
  • 创建了问题 12月25日