@@ -846,7 +846,7 @@ static void i2c_get_dma_info(uint16_t index)
846846 {
847847 i2c_hal_obj [index ].i2c_dma_flag = 1 ;
848848 bf0_i2c_cfg [index ].dma_rx = i2c_dma ;
849- bf0_i2c_cfg [index ].dma_rx = i2c_dma ;
849+ bf0_i2c_cfg [index ].dma_tx = i2c_dma ;
850850 PBL_LOG (LOG_LEVEL_INFO , "I2C [%s] has config DMA!" , bf0_i2c_cfg [index ].device_name );
851851 }
852852 else
@@ -867,6 +867,16 @@ int rt_hw_i2c_init(struct I2CBusHal * i2c_hal, bf0_i2c_config_t *cfg, struct rt_
867867 __HAL_LINKDMA (& (i2c_hal -> handle ), hdmarx , i2c_hal -> dma .dma_rx );
868868 __HAL_LINKDMA (& (i2c_hal -> handle ), hdmatx , i2c_hal -> dma .dma_tx );
869869 HAL_I2C_DMA_Init (& (i2c_hal -> handle ), cfg -> dma_rx , cfg -> dma_tx );
870+
871+ HAL_NVIC_SetPriority (i2c_hal -> bf0_i2c_cfg -> dma_rx -> dma_irq , 5 , 0 );
872+ NVIC_EnableIRQ (i2c_hal -> bf0_i2c_cfg -> dma_rx -> dma_irq );
873+ HAL_NVIC_SetPriority (i2c_hal -> bf0_i2c_cfg -> dma_rx -> dma_irq , 5 , 0 );
874+ NVIC_EnableIRQ (i2c_hal -> bf0_i2c_cfg -> dma_rx -> dma_irq );
875+ }
876+ else if (i2c_hal -> i2c_int_flag )
877+ {
878+ HAL_NVIC_SetPriority (i2c_hal -> bf0_i2c_cfg -> irq_type , 5 , 0 );
879+ NVIC_EnableIRQ (i2c_hal -> bf0_i2c_cfg -> irq_type );
870880 }
871881 ret = i2c_bus_configure (i2c_hal , cfg_default );
872882 if (ret < 0 )
0 commit comments