/** * @brief I2C MSP De-Initialization * This function frees the hardware resources used in this example: * - Disable the Peripheral's clock * - Revert GPIO, DMA and NVIC configuration to their default state * @param hi2c: I2C handle pointer * @retval None */ void HAL_I2C_MspDeInit(I2C_HandleTypeDef *hi2c) { static DMA_HandleTypeDef hdma_tx; static DMA_HandleTypeDef hdma_rx; /*##-1- Reset peripherals ##################################################*/ I2Cx_FORCE_RESET(); I2Cx_RELEASE_RESET(); /*##-2- Disable peripherals and GPIO Clocks ################################*/ /* Configure I2C Tx as alternate function */ HAL_GPIO_DeInit(I2Cx_SCL_GPIO_PORT, I2Cx_SCL_PIN); /* Configure I2C Rx as alternate function */ HAL_GPIO_DeInit(I2Cx_SDA_GPIO_PORT, I2Cx_SDA_PIN); /*##-3- Disable the DMA Streams ############################################*/ /* De-Initialize the DMA Stream associate to transmission process */ HAL_DMA_DeInit(&hdma_tx); /* De-Initialize the DMA Stream associate to reception process */ HAL_DMA_DeInit(&hdma_rx); /*##-4- Disable the NVIC for DMA ###########################################*/ HAL_NVIC_DisableIRQ(I2Cx_DMA_TX_IRQn); HAL_NVIC_DisableIRQ(I2Cx_DMA_RX_IRQn); }
/** * @brief I2C MSP De-Initialization * This function frees the hardware resources used in this example: * - Disable the Peripheral's clock * - Revert GPIO, DMA and NVIC configuration to their default state * @param hi2c: I2C handle pointer * @retval None */ void HAL_I2C_MspDeInit(I2C_HandleTypeDef *hi2c) { /*##-1- Reset peripherals ##################################################*/ I2Cx_FORCE_RESET(); I2Cx_RELEASE_RESET(); /*##-2- Disable peripherals and GPIO Clocks ################################*/ /* Configure I2C Tx as alternate function */ HAL_GPIO_DeInit(I2Cx_SCL_GPIO_PORT, I2Cx_SCL_PIN); /* Configure I2C Rx as alternate function */ HAL_GPIO_DeInit(I2Cx_SDA_GPIO_PORT, I2Cx_SDA_PIN); }