问答

汇集网友智慧,解决技术难题

tsingbo

TA的家园币:14  

  • GD32H757XXX 的USB Audio通过I2S传输音频问题

    当选择的是"I2S1"后播放音频,对应管脚示波器测量波形正常,但配置为其他几个I2S(I2S0,I2S2,I2S5)后每个管脚的波形都出不来,时钟和对应的管脚选择上都核对没问题,找不到什么原因。voidcodec_audio_interface_init(uint32_taudio_freq){i2s_audiofreq=audio_freq;/*enabletheAD_I2Speripheralclock*/rcu_periph_clock_enable(AD_I2S_CLK);rcu_spi_clock_config(IDX_SPI1,RCU_SPISRC_PLL0Q);/*AD_I2Speripheralconfiguration*/spi_i2s_deinit(AD_I2S);/*initializetheI2Speripheralwiththestructureabove*/i2s_psc_config(AD_I2S,audio_freq,I2S_FRAMEFORMAT_DT16B_CH16B,#ifdefIIS_MCLK_ENABLEDI2S_MCKOUT_ENABLE#elifdefined(IIS_MCLK_DISABLED)I2S_MCKOUT_DISABLE#endif/*IIS_MCLK_ENABLED*/);i2s_init(AD_I2S,I2S_MODE_MASTERTX,I2S_STD_MSB,I2S_CKPL_HIGH);/*enabletheI2SDMATXrequest*/spi_dma_enable(AD_I2S,SPI_DMA_TRANSMIT);}voidcodec_gpio_init(void){/*enableGPIOclock*/rcu_periph_clock_enable(AD_I2S_WS_CLK);rcu_periph_clock_enable(AD_I2S_SCK_CLK);rcu_periph_clock_enable(AD_I2S_SD_CLK);rcu_periph_clock_enable(RCU_SYSCFG);/*AD_I2Spinsconfiguration:WS,SCKandSDpins*/gpio_mode_set(AD_I2S_WS_GPIO,GPIO_MODE_AF,GPIO_PUPD_NONE,AD_I2S_WS_PIN);gpio_output_options_set(AD_I2S_WS_GPIO,GPIO_OTYPE_PP,GPIO_OSPEED_85MHZ,AD_I2S_WS_PIN);gpio_af_set(AD_I2S_WS_GPIO,GPIO_AF_5,AD_I2S_WS_PIN);gpio_mode_set(AD_I2S_SCK_GPIO,GPIO_MODE_AF,GPIO_PUPD_NONE,AD_I2S_SCK_PIN);gpio_output_options_set(AD_I2S_SCK_GPIO,GPIO_OTYPE_PP,GPIO_OSPEED_85MHZ,AD_I2S_SCK_PIN);gpio_af_set(AD_I2S_SCK_GPIO,GPIO_AF_5,AD_I2S_SCK_PIN);gpio_mode_set(AD_I2S_SD_GPIO,GPIO_MODE_AF,GPIO_PUPD_NONE,AD_I2S_SD_PIN);gpio_output_options_set(AD_I2S_SD_GPIO,GPIO_OTYPE_PP,GPIO_OSPEED_85MHZ,AD_I2S_SD_PIN