/** * @brief DeInitializes the RNG peripheral. * @param hrng: pointer to a RNG_HandleTypeDef structure that contains * the configuration information for RNG. * @retval HAL status */ HAL_StatusTypeDef HAL_RNG_DeInit(RNG_HandleTypeDef *hrng) { /* Check the RNG handle allocation */ if(hrng == NULL) { return HAL_ERROR; } /* Disable the RNG Peripheral */ CLEAR_BIT(hrng->Instance->CR, RNG_CR_IE | RNG_CR_RNGEN); /* Clear RNG interrupt status flags */ CLEAR_BIT(hrng->Instance->SR, RNG_SR_CEIS | RNG_SR_SEIS); /* DeInit the low level hardware */ HAL_RNG_MspDeInit(hrng); /* Update the RNG state */ hrng->State = HAL_RNG_STATE_RESET; /* Release Lock */ __HAL_UNLOCK(hrng); /* Return the function status */ return HAL_OK; }
/** * @brief DeInitializes the RNG peripheral. * @param hrng: pointer to a RNG_HandleTypeDef structure that contains * the configuration information for RNG. * @retval HAL status */ HAL_StatusTypeDef HAL_RNG_DeInit(RNG_HandleTypeDef *hrng) { /* Check the RNG peripheral state */ if(hrng->State == HAL_RNG_STATE_BUSY) { return HAL_BUSY; } /* Update the RNG state */ hrng->State = HAL_RNG_STATE_BUSY; /* Disable the RNG Peripheral */ __HAL_RNG_DISABLE(hrng); /* Set the RNG registers to their reset values */ hrng->Instance->CR &= 0xFFFFFFF3; hrng->Instance->SR &= 0xFFFFFF98; hrng->Instance->DR &= 0x0; /* DeInit the low level hardware */ HAL_RNG_MspDeInit(hrng); /* Update the RNG state */ hrng->State = HAL_RNG_STATE_RESET; /* Release Lock */ __HAL_UNLOCK(hrng); /* Return the function status */ return HAL_OK; }
/** * @brief DeInitializes the RNG peripheral. * @param hrng pointer to a RNG_HandleTypeDef structure that contains * the configuration information for RNG. * @retval HAL status */ HAL_StatusTypeDef HAL_RNG_DeInit(RNG_HandleTypeDef *hrng) { /* Check the RNG handle allocation */ if (hrng == NULL) { return HAL_ERROR; } /* Clear Clock Error Detection bit */ CLEAR_BIT(hrng->Instance->CR, RNG_CR_CED); /* Disable the RNG Peripheral */ CLEAR_BIT(hrng->Instance->CR, RNG_CR_IE | RNG_CR_RNGEN); /* Clear RNG interrupt status flags */ CLEAR_BIT(hrng->Instance->SR, RNG_SR_CEIS | RNG_SR_SEIS); #if (USE_HAL_RNG_REGISTER_CALLBACKS == 1) if (hrng->MspDeInitCallback == NULL) { hrng->MspDeInitCallback = HAL_RNG_MspDeInit; /* Legacy weak MspDeInit */ } /* DeInit the low level hardware */ hrng->MspDeInitCallback(hrng); #else /* DeInit the low level hardware */ HAL_RNG_MspDeInit(hrng); #endif /* USE_HAL_RNG_REGISTER_CALLBACKS */ /* Update the RNG state */ hrng->State = HAL_RNG_STATE_RESET; /* Initialise the error code */ hrng->ErrorCode = HAL_RNG_ERROR_NONE; /* Release Lock */ __HAL_UNLOCK(hrng); /* Return the function status */ return HAL_OK; }