/** * @brief Low level I2S driver initialization. * * @notapi */ void i2s_lld_init(void) { #if STM32_I2S_USE_SPI2 i2sObjectInit(&I2SD2); I2SD2.spi = SPI2; I2SD2.cfg = STM32_I2S2_CFGR_CFG; #if STM32_I2S_RX_ENABLED(STM32_I2S_SPI2_MODE) I2SD2.dmarx = STM32_DMA_STREAM(STM32_I2S_SPI2_RX_DMA_STREAM); I2SD2.rxdmamode = STM32_DMA_CR_CHSEL(I2S2_RX_DMA_CHANNEL) | STM32_DMA_CR_PL(STM32_I2S_SPI2_DMA_PRIORITY) | STM32_DMA_CR_PSIZE_HWORD | STM32_DMA_CR_MSIZE_HWORD | STM32_DMA_CR_DIR_P2M | STM32_DMA_CR_MINC | STM32_DMA_CR_CIRC | STM32_DMA_CR_HTIE | STM32_DMA_CR_TCIE | STM32_DMA_CR_DMEIE | STM32_DMA_CR_TEIE; #else I2SD2.dmarx = NULL; I2SD2.rxdmamode = 0; #endif #if STM32_I2S_TX_ENABLED(STM32_I2S_SPI2_MODE) I2SD2.dmatx = STM32_DMA_STREAM(STM32_I2S_SPI2_TX_DMA_STREAM); I2SD2.txdmamode = STM32_DMA_CR_CHSEL(I2S2_TX_DMA_CHANNEL) | STM32_DMA_CR_PL(STM32_I2S_SPI2_DMA_PRIORITY) | STM32_DMA_CR_PSIZE_HWORD | STM32_DMA_CR_MSIZE_HWORD | STM32_DMA_CR_DIR_M2P | STM32_DMA_CR_MINC | STM32_DMA_CR_CIRC | STM32_DMA_CR_HTIE | STM32_DMA_CR_TCIE | STM32_DMA_CR_DMEIE | STM32_DMA_CR_TEIE; #else I2SD2.dmatx = NULL; I2SD2.txdmamode = 0; #endif #endif #if STM32_I2S_USE_SPI3 i2sObjectInit(&I2SD3); I2SD3.spi = SPI3; I2SD3.cfg = STM32_I2S3_CFGR_CFG; #if STM32_I2S_RX_ENABLED(STM32_I2S_SPI3_MODE) I2SD3.dmarx = STM32_DMA_STREAM(STM32_I2S_SPI3_RX_DMA_STREAM); I2SD3.rxdmamode = STM32_DMA_CR_CHSEL(I2S3_RX_DMA_CHANNEL) | STM32_DMA_CR_PL(STM32_I2S_SPI3_DMA_PRIORITY) | STM32_DMA_CR_PSIZE_HWORD | STM32_DMA_CR_MSIZE_HWORD | STM32_DMA_CR_DIR_P2M | STM32_DMA_CR_MINC | STM32_DMA_CR_CIRC | STM32_DMA_CR_HTIE | STM32_DMA_CR_TCIE | STM32_DMA_CR_DMEIE | STM32_DMA_CR_TEIE; #else I2SD3.dmarx = NULL; I2SD3.rxdmamode = 0; #endif #if STM32_I2S_TX_ENABLED(STM32_I2S_SPI3_MODE) I2SD3.dmatx = STM32_DMA_STREAM(STM32_I2S_SPI3_TX_DMA_STREAM); I2SD3.txdmamode = STM32_DMA_CR_CHSEL(I2S3_TX_DMA_CHANNEL) | STM32_DMA_CR_PL(STM32_I2S_SPI3_DMA_PRIORITY) | STM32_DMA_CR_PSIZE_HWORD | STM32_DMA_CR_MSIZE_HWORD | STM32_DMA_CR_DIR_M2P | STM32_DMA_CR_MINC | STM32_DMA_CR_CIRC | STM32_DMA_CR_HTIE | STM32_DMA_CR_TCIE | STM32_DMA_CR_DMEIE | STM32_DMA_CR_TEIE; #else I2SD3.dmatx = NULL; I2SD3.txdmamode = 0; #endif #endif }
/** * @brief Low level I2S driver initialization. * * @notapi */ void i2s_lld_init(void) { #if PLATFORM_I2S_USE_I2S1 i2sObjectInit(&I2SD1); #endif }