/** * @brief Deactivates the I2C peripheral. * * @param[in] i2cp pointer to the @p I2CDriver object * * @notapi */ void i2c_lld_stop(I2CDriver *i2cp) { /* If not in stopped state then disables the I2C clock.*/ if (i2cp->state != I2C_STOP) { /* I2C disable.*/ i2c_lld_abort_operation(i2cp); dmaStreamRelease(i2cp->dmatx); dmaStreamRelease(i2cp->dmarx); #if STM32_I2C_USE_I2C1 if (&I2CD1 == i2cp) { nvicDisableVector(I2C1_EV_IRQn); nvicDisableVector(I2C1_ER_IRQn); rccDisableI2C1(FALSE); } #endif #if STM32_I2C_USE_I2C2 if (&I2CD2 == i2cp) { nvicDisableVector(I2C2_EV_IRQn); nvicDisableVector(I2C2_ER_IRQn); rccDisableI2C2(FALSE); } #endif #if STM32_I2C_USE_I2C3 if (&I2CD3 == i2cp) { nvicDisableVector(I2C3_EV_IRQn); nvicDisableVector(I2C3_ER_IRQn); rccDisableI2C3(FALSE); } #endif } }
void i2c_t::Standby() { if(ii2c == I2C1) { rccResetI2C1(); rccDisableI2C1(FALSE); } else { rccResetI2C2(); rccDisableI2C2(FALSE); } // Disable GPIOs PinSetupAnalog(IPGpio, ISclPin); PinSetupAnalog(IPGpio, ISdaPin); }
void i2c_t::Standby() { if(ii2c == I2C1) { rccResetI2C1(); rccDisableI2C1(FALSE); } #ifdef RCC_APB1ENR_I2C2EN else { rccResetI2C2(); rccDisableI2C2(FALSE); } #endif #if 0 else if (ii2c == I2C3) { rccResetI2C3(); rccDisableI2C3(FALSE); }
void i2c_t::Standby() { if (ii2c == I2C1) { rccResetI2C1(); rccDisableI2C1(FALSE); } #if !defined (STM32F10X_LD) && !defined (STM32F10X_LD_VL) else if (ii2c == I2C2) { rccResetI2C2(); rccDisableI2C2(FALSE); } #endif // Disable GPIOs PinSetupAnalog(IPGpio, ISclPin); PinSetupAnalog(IPGpio, ISdaPin); }
/** * @brief Deactivates the I2C peripheral. * * @param[in] i2cp pointer to the @p I2CDriver object * * @notapi */ void i2c_lld_stop(I2CDriver *i2cp) { /* If not in stopped state then disables the I2C clock.*/ if (i2cp->state != I2C_STOP) { /* I2C disable.*/ i2c_lld_abort_operation(i2cp); #if STM32_I2C_USE_DMA == TRUE dmaStreamRelease(i2cp->dmatx); dmaStreamRelease(i2cp->dmarx); #endif #if STM32_I2C_USE_I2C1 if (&I2CD1 == i2cp) { #if defined(STM32_I2C1_GLOBAL_NUMBER) || defined(__DOXYGEN__) nvicDisableVector(STM32_I2C1_GLOBAL_NUMBER); #elif defined(STM32_I2C1_EVENT_NUMBER) && defined(STM32_I2C1_ERROR_NUMBER) nvicDisableVector(STM32_I2C1_EVENT_NUMBER); nvicDisableVector(STM32_I2C1_ERROR_NUMBER); #else #error "I2C1 interrupt numbers not defined" #endif rccDisableI2C1(FALSE); } #endif #if STM32_I2C_USE_I2C2 if (&I2CD2 == i2cp) { #if defined(STM32_I2C2_GLOBAL_NUMBER) || defined(__DOXYGEN__) nvicDisableVector(STM32_I2C2_GLOBAL_NUMBER); #elif defined(STM32_I2C2_EVENT_NUMBER) && defined(STM32_I2C2_ERROR_NUMBER) nvicDisableVector(STM32_I2C2_EVENT_NUMBER); nvicDisableVector(STM32_I2C2_ERROR_NUMBER); #else #error "I2C2 interrupt numbers not defined" #endif rccDisableI2C2(FALSE); } #endif } }