Skip to content

Commit 96c0ce2

Browse files
wdfk-progRbb666
authored andcommitted
fix[STM32][I2C]: allow INT and DMA flags to coexist in hard i2c config
1 parent 2aeebc5 commit 96c0ce2

1 file changed

Lines changed: 24 additions & 16 deletions

File tree

bsp/stm32/libraries/HAL_Drivers/drivers/drv_hard_i2c.c

Lines changed: 24 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -650,19 +650,21 @@ static void stm32_get_info(void)
650650

651651
#if defined (BSP_I2C1_TX_USING_INT)
652652
i2c_objs[I2C1_INDEX].i2c_dma_flag |= RT_DEVICE_FLAG_INT_TX;
653-
#elif defined(BSP_I2C1_TX_USING_DMA)
653+
#endif /* defined (BSP_I2C1_TX_USING_INT) */
654+
#if defined(BSP_I2C1_TX_USING_DMA)
654655
i2c_objs[I2C1_INDEX].i2c_dma_flag |= RT_DEVICE_FLAG_DMA_TX;
655656
static struct dma_config I2C1_dma_tx = I2C1_TX_DMA_CONFIG;
656657
i2c_config[I2C1_INDEX].dma_tx = &I2C1_dma_tx;
657-
#endif /* defined (BSP_I2C1_TX_USING_INT) */
658+
#endif /* defined (BSP_I2C1_TX_USING_DMA) */
658659

659660
#if defined (BSP_I2C1_RX_USING_INT)
660661
i2c_objs[I2C1_INDEX].i2c_dma_flag |= RT_DEVICE_FLAG_INT_RX;
661-
#elif defined(BSP_I2C1_RX_USING_DMA)
662+
#endif /* defined (BSP_I2C1_RX_USING_INT) */
663+
#if defined(BSP_I2C1_RX_USING_DMA)
662664
i2c_objs[I2C1_INDEX].i2c_dma_flag |= RT_DEVICE_FLAG_DMA_RX;
663665
static struct dma_config I2C1_dma_rx = I2C1_RX_DMA_CONFIG;
664666
i2c_config[I2C1_INDEX].dma_rx = &I2C1_dma_rx;
665-
#endif /* defined (BSP_I2C1_RX_USING_INT) */
667+
#endif /* defined (BSP_I2C1_RX_USING_DMA) */
666668

667669
#endif /* defined(BSP_USING_HARD_I2C1) */
668670

@@ -671,19 +673,21 @@ static void stm32_get_info(void)
671673

672674
#if defined (BSP_I2C2_TX_USING_INT)
673675
i2c_objs[I2C2_INDEX].i2c_dma_flag |= RT_DEVICE_FLAG_INT_TX;
674-
#elif defined(BSP_I2C2_TX_USING_DMA)
676+
#endif /* defined (BSP_I2C2_TX_USING_INT) */
677+
#if defined(BSP_I2C2_TX_USING_DMA)
675678
i2c_objs[I2C2_INDEX].i2c_dma_flag |= RT_DEVICE_FLAG_DMA_TX;
676679
static struct dma_config I2C2_dma_tx = I2C2_TX_DMA_CONFIG;
677680
i2c_config[I2C2_INDEX].dma_tx = &I2C2_dma_tx;
678-
#endif /* defined (BSP_I2C2_TX_USING_INT) */
681+
#endif /* defined (BSP_I2C2_TX_USING_DMA) */
679682

680683
#if defined (BSP_I2C2_RX_USING_INT)
681684
i2c_objs[I2C2_INDEX].i2c_dma_flag |= RT_DEVICE_FLAG_INT_RX;
682-
#elif defined(BSP_I2C2_RX_USING_DMA)
685+
#endif /* defined (BSP_I2C2_RX_USING_INT) */
686+
#if defined(BSP_I2C2_RX_USING_DMA)
683687
i2c_objs[I2C2_INDEX].i2c_dma_flag |= RT_DEVICE_FLAG_DMA_RX;
684688
static struct dma_config I2C2_dma_rx = I2C2_RX_DMA_CONFIG;
685689
i2c_config[I2C2_INDEX].dma_rx = &I2C2_dma_rx;
686-
#endif /* defined (BSP_I2C2_RX_USING_INT) */
690+
#endif /* defined (BSP_I2C2_RX_USING_DMA) */
687691

688692
#endif /* defined(BSP_USING_HARD_I2C2) */
689693

@@ -692,19 +696,21 @@ static void stm32_get_info(void)
692696

693697
#if defined (BSP_I2C3_TX_USING_INT)
694698
i2c_objs[I2C3_INDEX].i2c_dma_flag |= RT_DEVICE_FLAG_INT_TX;
695-
#elif defined(BSP_I2C3_TX_USING_DMA)
699+
#endif /* defined (BSP_I2C3_TX_USING_INT) */
700+
#if defined(BSP_I2C3_TX_USING_DMA)
696701
i2c_objs[I2C3_INDEX].i2c_dma_flag |= RT_DEVICE_FLAG_DMA_TX;
697702
static struct dma_config I2C3_dma_tx = I2C3_TX_DMA_CONFIG;
698703
i2c_config[I2C3_INDEX].dma_tx = &I2C3_dma_tx;
699-
#endif /* defined (BSP_I2C3_TX_USING_INT) */
704+
#endif /* defined (BSP_I2C3_TX_USING_DMA) */
700705

701706
#if defined (BSP_I2C3_RX_USING_INT)
702707
i2c_objs[I2C3_INDEX].i2c_dma_flag |= RT_DEVICE_FLAG_INT_RX;
703-
#elif defined(BSP_I2C3_RX_USING_DMA)
708+
#endif /* defined (BSP_I2C3_RX_USING_INT) */
709+
#if defined(BSP_I2C3_RX_USING_DMA)
704710
i2c_objs[I2C3_INDEX].i2c_dma_flag |= RT_DEVICE_FLAG_DMA_RX;
705711
static struct dma_config I2C3_dma_rx = I2C3_RX_DMA_CONFIG;
706712
i2c_config[I2C3_INDEX].dma_rx = &I2C3_dma_rx;
707-
#endif /* defined (BSP_I2C3_RX_USING_INT) */
713+
#endif /* defined (BSP_I2C3_RX_USING_DMA) */
708714

709715
#endif /* defined(BSP_USING_HARD_I2C3) */
710716

@@ -713,19 +719,21 @@ static void stm32_get_info(void)
713719

714720
#if defined (BSP_I2C4_TX_USING_INT)
715721
i2c_objs[I2C4_INDEX].i2c_dma_flag |= RT_DEVICE_FLAG_INT_TX;
716-
#elif defined(BSP_I2C4_TX_USING_DMA)
722+
#endif /* defined (BSP_I2C4_TX_USING_INT) */
723+
#if defined(BSP_I2C4_TX_USING_DMA)
717724
i2c_objs[I2C4_INDEX].i2c_dma_flag |= RT_DEVICE_FLAG_DMA_TX;
718725
static struct dma_config I2C4_dma_tx = I2C4_TX_DMA_CONFIG;
719726
i2c_config[I2C4_INDEX].dma_tx = &I2C4_dma_tx;
720-
#endif /* defined (BSP_I2C4_TX_USING_INT) */
727+
#endif /* defined (BSP_I2C4_TX_USING_DMA) */
721728

722729
#if defined (BSP_I2C4_RX_USING_INT)
723730
i2c_objs[I2C4_INDEX].i2c_dma_flag |= RT_DEVICE_FLAG_INT_RX;
724-
#elif defined(BSP_I2C4_RX_USING_DMA)
731+
#endif /* defined (BSP_I2C4_RX_USING_INT) */
732+
#if defined(BSP_I2C4_RX_USING_DMA)
725733
i2c_objs[I2C4_INDEX].i2c_dma_flag |= RT_DEVICE_FLAG_DMA_RX;
726734
static struct dma_config I2C4_dma_rx = I2C4_RX_DMA_CONFIG;
727735
i2c_config[I2C4_INDEX].dma_rx = &I2C4_dma_rx;
728-
#endif /* defined (BSP_I2C4_RX_USING_INT) */
736+
#endif /* defined (BSP_I2C4_RX_USING_DMA) */
729737

730738
#endif /* defined(BSP_USING_HARD_I2C4) */
731739
}

0 commit comments

Comments
 (0)