File tree Expand file tree Collapse file tree 1 file changed +12
-4
lines changed Expand file tree Collapse file tree 1 file changed +12
-4
lines changed Original file line number Diff line number Diff line change @@ -537,18 +537,26 @@ STATIC bool i2s_init(machine_i2s_obj_t *self) {
537
537
__SPI1_CLK_ENABLE ();
538
538
// configure DMA streams
539
539
if (self -> mode == I2S_MODE_MASTER_RX || self -> mode == I2S_MODE_SLAVE_RX ) {
540
- self -> dma_descr_rx = & dma_I2S_1_RX ;
540
+ self -> dma_descr_rx = & dma_I2S_1_RX_32 ; // always 32-bit
541
541
} else {
542
- self -> dma_descr_tx = & dma_I2S_1_TX ;
542
+ if (self -> hi2s .Init .DataFormat == I2S_DATAFORMAT_16B ) {
543
+ self -> dma_descr_tx = & dma_I2S_1_TX_16 ;
544
+ } else {
545
+ self -> dma_descr_tx = & dma_I2S_1_TX_32 ;
546
+ }
543
547
}
544
548
} else if (self -> i2s_id == 2 ) {
545
549
self -> hi2s .Instance = I2S2 ;
546
550
__SPI2_CLK_ENABLE ();
547
551
// configure DMA streams
548
552
if (self -> mode == I2S_MODE_MASTER_RX || self -> mode == I2S_MODE_SLAVE_RX ) {
549
- self -> dma_descr_rx = & dma_I2S_2_RX ;
553
+ self -> dma_descr_rx = & dma_I2S_2_RX_32 ; // always 32-bit
550
554
} else {
551
- self -> dma_descr_tx = & dma_I2S_2_TX ;
555
+ if (self -> hi2s .Init .DataFormat == I2S_DATAFORMAT_16B ) {
556
+ self -> dma_descr_tx = & dma_I2S_1_TX_16 ;
557
+ } else {
558
+ self -> dma_descr_tx = & dma_I2S_2_TX_32 ;
559
+ }
552
560
}
553
561
} else {
554
562
// invalid id number; should not get here as i2s object should not
You can’t perform that action at this time.
0 commit comments