STM32
直播中

张强

7年用户 1373经验值
私信 关注
[问答]

求助,关于USB AUDIO设置采样率遇到的问题求解

做的USB声卡,再把采样率修改到44.1K时,进行播放,感觉声音有点不对,然后有个假想,全速双通道44.1K,16位每帧传输数据是44100*2*2/1000=176.4,这个有小数,不像48K,32K都是整数,听别人说44.1K传输十次要传输一次180,但是在修改程序的时候,修改了两天还是没修改对,现在想求一份44.1K采样率的USB扬声器。希望大佬们帮帮忙。没修改对的原因就是在传输180的时候,DMA的传输长度也要跟着修改,但是一修改声音就出错了。不知道什么原因导致的。

回帖(1)

汤敏树

2024-4-17 10:00:24
试一下在传输完成中断的地方修改传输长度


      current_speaker->data_size = current_speaker->injection_size;
      read_length = current_speaker->packet_length;
#if USB_AUDIO_CONFIG_PLAY_USE_FREQ_44_1_K
      if(current_speaker->node.audio_description->frequence == USB_AUDIO_CONFIG_FREQ_44_1_K)
      {
        if(current_speaker->injection_44_count < 9)
        {
          current_speaker->injection_44_count++;  
        }
        else
        {
           current_speaker->injection_44_count = 0;
           current_speaker->data_size = current_speaker->alt_buf_half_size;
           read_length = current_speaker->packet_length_max_44_1;
        }
      }
#endif /* USB_AUDIO_CONFIG_PLAY_USE_FREQ_44_1_K*/
举报

更多回帖

发帖
×
20
完善资料,
赚取积分