STM32H735xx HAL User Manual
stm32h7xx_ll_crc.c
Go to the documentation of this file.
00001 /**
00002   ******************************************************************************
00003   * @file    stm32h7xx_ll_crc.c
00004   * @author  MCD Application Team
00005   * @brief   CRC LL module driver.
00006   ******************************************************************************
00007   * @attention
00008   *
00009   * Copyright (c) 2017 STMicroelectronics.
00010   * All rights reserved.
00011   *
00012   * This software is licensed under terms that can be found in the LICENSE file
00013   * in the root directory of this software component.
00014   * If no LICENSE file comes with this software, it is provided AS-IS.
00015   *
00016   ******************************************************************************
00017   */
00018 #if defined(USE_FULL_LL_DRIVER)
00019 
00020 /* Includes ------------------------------------------------------------------*/
00021 #include "stm32h7xx_ll_crc.h"
00022 #include "stm32h7xx_ll_bus.h"
00023 
00024 #ifdef  USE_FULL_ASSERT
00025 #include "stm32_assert.h"
00026 #else
00027 #define assert_param(expr) ((void)0U)
00028 #endif /* USE_FULL_ASSERT */
00029 
00030 /** @addtogroup STM32H7xx_LL_Driver
00031   * @{
00032   */
00033 
00034 #if defined (CRC)
00035 
00036 /** @addtogroup CRC_LL
00037   * @{
00038   */
00039 
00040 /* Private types -------------------------------------------------------------*/
00041 /* Private variables ---------------------------------------------------------*/
00042 /* Private constants ---------------------------------------------------------*/
00043 /* Private macros ------------------------------------------------------------*/
00044 /* Private function prototypes -----------------------------------------------*/
00045 
00046 /* Exported functions --------------------------------------------------------*/
00047 /** @addtogroup CRC_LL_Exported_Functions
00048   * @{
00049   */
00050 
00051 /** @addtogroup CRC_LL_EF_Init
00052   * @{
00053   */
00054 
00055 /**
00056   * @brief  De-initialize CRC registers (Registers restored to their default values).
00057   * @param  CRCx CRC Instance
00058   * @retval An ErrorStatus enumeration value:
00059   *          - SUCCESS: CRC registers are de-initialized
00060   *          - ERROR: CRC registers are not de-initialized
00061   */
00062 ErrorStatus LL_CRC_DeInit(CRC_TypeDef *CRCx)
00063 {
00064   ErrorStatus status = SUCCESS;
00065 
00066   /* Check the parameters */
00067   assert_param(IS_CRC_ALL_INSTANCE(CRCx));
00068 
00069   if (CRCx == CRC)
00070   {
00071 #if defined(LL_AHB4_GRP1_PERIPH_CRC)
00072     /* Force CRC reset */
00073     LL_AHB4_GRP1_ForceReset(LL_AHB4_GRP1_PERIPH_CRC);
00074 
00075     /* Release CRC reset */
00076     LL_AHB4_GRP1_ReleaseReset(LL_AHB4_GRP1_PERIPH_CRC);
00077 #else
00078     /* Force CRC reset */
00079     LL_AHB1_GRP1_ForceReset(LL_AHB1_GRP1_PERIPH_CRC);
00080 
00081     /* Release CRC reset */
00082     LL_AHB1_GRP1_ReleaseReset(LL_AHB1_GRP1_PERIPH_CRC);
00083 #endif /*LL_AHB4_GRP1_PERIPH_CRC)*/
00084   }
00085   else
00086   {
00087     status = ERROR;
00088   }
00089 
00090   return (status);
00091 }
00092 
00093 /**
00094   * @}
00095   */
00096 
00097 /**
00098   * @}
00099   */
00100 
00101 /**
00102   * @}
00103   */
00104 
00105 #endif /* defined (CRC) */
00106 
00107 /**
00108   * @}
00109   */
00110 
00111 #endif /* USE_FULL_LL_DRIVER */