1 /**
2 ******************************************************************************
3 * @file stm32f1xx_ll_crc.c
4 * @author MCD Application Team
5 * @brief CRC LL module driver.
6 ******************************************************************************
7 * @attention
8 *
9 * Copyright (c) 2016 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 "stm32f1xx_ll_crc.h"
22 #include "stm32f1xx_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 STM32F1xx_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)62 ErrorStatus 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
72 /* Reset the CRC calculation unit */
73 LL_CRC_ResetCRCCalculationUnit(CRCx);
74
75 /* Reset IDR register */
76 LL_CRC_Write_IDR(CRCx, 0x00U);
77 }
78 else
79 {
80 status = ERROR;
81 }
82
83 return (status);
84 }
85
86 /**
87 * @}
88 */
89
90 /**
91 * @}
92 */
93
94 /**
95 * @}
96 */
97
98 #endif /* defined (CRC) */
99
100 /**
101 * @}
102 */
103
104 #endif /* USE_FULL_LL_DRIVER */
105