1 /** 2 ****************************************************************************** 3 * @file stm32f3xx_ll_crc.c 4 * @author MCD Application Team 5 * @brief CRC LL module driver. 6 ****************************************************************************** 7 * @attention 8 * 9 * Copyright (c) 2017 STMicroelectronics. 10 * All rights reserved. 11 * 12 * This software is licensed under terms that can be found in the LICENSE file 13 * in the root directory of this software component. 14 * If no LICENSE file comes with this software, it is provided AS-IS. 15 * 16 ****************************************************************************** 17 */ 18 #if defined(USE_FULL_LL_DRIVER) 19 20 /* Includes ------------------------------------------------------------------*/ 21 #include "stm32f3xx_ll_crc.h" 22 #include "stm32f3xx_ll_bus.h" 23 24 #ifdef USE_FULL_ASSERT 25 #include "stm32_assert.h" 26 #else 27 #define assert_param(expr) ((void)0U) 28 #endif /* USE_FULL_ASSERT */ 29 30 /** @addtogroup STM32F3xx_LL_Driver 31 * @{ 32 */ 33 34 #if defined (CRC) 35 36 /** @addtogroup CRC_LL 37 * @{ 38 */ 39 40 /* Private types -------------------------------------------------------------*/ 41 /* Private variables ---------------------------------------------------------*/ 42 /* Private constants ---------------------------------------------------------*/ 43 /* Private macros ------------------------------------------------------------*/ 44 /* Private function prototypes -----------------------------------------------*/ 45 46 /* Exported functions --------------------------------------------------------*/ 47 /** @addtogroup CRC_LL_Exported_Functions 48 * @{ 49 */ 50 51 /** @addtogroup CRC_LL_EF_Init 52 * @{ 53 */ 54 55 /** 56 * @brief De-initialize CRC registers (Registers restored to their default values). 57 * @param CRCx CRC Instance 58 * @retval An ErrorStatus enumeration value: 59 * - SUCCESS: CRC registers are de-initialized 60 * - ERROR: CRC registers are not de-initialized 61 */ LL_CRC_DeInit(CRC_TypeDef * CRCx)62ErrorStatus LL_CRC_DeInit(CRC_TypeDef *CRCx) 63 { 64 ErrorStatus status = SUCCESS; 65 66 /* Check the parameters */ 67 assert_param(IS_CRC_ALL_INSTANCE(CRCx)); 68 69 if (CRCx == CRC) 70 { 71 /* Set programmable polynomial size in CR register to reset value (32 bits)*/ 72 LL_CRC_SetPolynomialSize(CRCx, LL_CRC_POLYLENGTH_32B); 73 74 /* Set programmable polynomial in POL register to reset value */ 75 LL_CRC_SetPolynomialCoef(CRCx, LL_CRC_DEFAULT_CRC32_POLY); 76 77 /* Set INIT register to reset value */ 78 LL_CRC_SetInitialData(CRCx, LL_CRC_DEFAULT_CRC_INITVALUE); 79 80 /* Set Reversibility options on I/O data values in CR register to reset value */ 81 LL_CRC_SetInputDataReverseMode(CRCx, LL_CRC_INDATA_REVERSE_NONE); 82 LL_CRC_SetOutputDataReverseMode(CRCx, LL_CRC_OUTDATA_REVERSE_NONE); 83 84 /* Reset the CRC calculation unit */ 85 LL_CRC_ResetCRCCalculationUnit(CRCx); 86 87 /* Reset IDR register */ 88 LL_CRC_Write_IDR(CRCx, 0x00U); 89 } 90 else 91 { 92 status = ERROR; 93 } 94 95 return (status); 96 } 97 98 /** 99 * @} 100 */ 101 102 /** 103 * @} 104 */ 105 106 /** 107 * @} 108 */ 109 110 #endif /* defined (CRC) */ 111 112 /** 113 * @} 114 */ 115 116 #endif /* USE_FULL_LL_DRIVER */ 117