diff --git a/os/hal/ports/STM32/LLD/I2Cv2/i2c_lld.c b/os/hal/ports/STM32/LLD/I2Cv2/i2c_lld.c index e0bc31979..991e77b01 100644 --- a/os/hal/ports/STM32/LLD/I2Cv2/i2c_lld.c +++ b/os/hal/ports/STM32/LLD/I2Cv2/i2c_lld.c @@ -844,8 +844,11 @@ void i2c_lld_start(I2CDriver *i2cp) { #endif /* Reset i2c peripheral, the TCIE bit will be handled separately.*/ - dp->CR1 = i2cp->config->cr1 | I2C_CR1_ERRIE | I2C_CR1_NACKIE | - I2C_CR1_TXDMAEN | I2C_CR1_RXDMAEN; + dp->CR1 = i2cp->config->cr1 | +#if STM32_I2C_USE_DMA == TRUE + I2C_CR1_TXDMAEN | I2C_CR1_RXDMAEN | /* Enable only if using DMA */ +#endif + I2C_CR1_ERRIE | I2C_CR1_NACKIE; /* Setup I2C parameters.*/ dp->TIMINGR = i2cp->config->timingr; diff --git a/readme.txt b/readme.txt index 06857c225..3fe6a3d4c 100644 --- a/readme.txt +++ b/readme.txt @@ -134,6 +134,7 @@ - HAL: Updated STM32F0xx headers to STM32CubeF0 version 1.3.0. Added support for STM32F030xC, STM32F070x6, STM32F070xB, STM32F091xC, STM32F098xx devices. +- HAL: Fixed STM32 I2Cv2 DMA conflict (bug #671)(backported to 3.0.4). - HAL: Fixed I2S clock selection not working in STM32F4xx HAL (bug #667) (backported to 3.0.4 and 2.6.10). - HAL: Fixed differences in STM32F3 ADC macro definitions (bug #665)