comparison Common/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_crc.h @ 160:e3ca52b8e7fa

Merge with FlipDisplay
author heinrichsweikamp
date Thu, 07 Mar 2019 15:06:43 +0100
parents c78bcbd5deda
children
comparison
equal deleted inserted replaced
80:cc2bb7bb8456 160:e3ca52b8e7fa
1 /**
2 ******************************************************************************
3 * @file stm32f4xx_ll_crc.h
4 * @author MCD Application Team
5 * @brief Header file of CRC LL module.
6 ******************************************************************************
7 * @attention
8 *
9 * <h2><center>&copy; COPYRIGHT(c) 2017 STMicroelectronics</center></h2>
10 *
11 * Redistribution and use in source and binary forms, with or without modification,
12 * are permitted provided that the following conditions are met:
13 * 1. Redistributions of source code must retain the above copyright notice,
14 * this list of conditions and the following disclaimer.
15 * 2. Redistributions in binary form must reproduce the above copyright notice,
16 * this list of conditions and the following disclaimer in the documentation
17 * and/or other materials provided with the distribution.
18 * 3. Neither the name of STMicroelectronics nor the names of its contributors
19 * may be used to endorse or promote products derived from this software
20 * without specific prior written permission.
21 *
22 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
23 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
24 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
25 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
26 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
27 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
28 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
29 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
30 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
31 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32 *
33 ******************************************************************************
34 */
35
36 /* Define to prevent recursive inclusion -------------------------------------*/
37 #ifndef __STM32F4xx_LL_CRC_H
38 #define __STM32F4xx_LL_CRC_H
39
40 #ifdef __cplusplus
41 extern "C" {
42 #endif
43
44 /* Includes ------------------------------------------------------------------*/
45 #include "stm32f4xx.h"
46
47 /** @addtogroup STM32F4xx_LL_Driver
48 * @{
49 */
50
51 #if defined(CRC)
52
53 /** @defgroup CRC_LL CRC
54 * @{
55 */
56
57 /* Private types -------------------------------------------------------------*/
58 /* Private variables ---------------------------------------------------------*/
59 /* Private constants ---------------------------------------------------------*/
60 /* Private macros ------------------------------------------------------------*/
61
62 /* Exported types ------------------------------------------------------------*/
63 /* Exported constants --------------------------------------------------------*/
64
65 /* Exported macro ------------------------------------------------------------*/
66 /** @defgroup CRC_LL_Exported_Macros CRC Exported Macros
67 * @{
68 */
69
70 /** @defgroup CRC_LL_EM_WRITE_READ Common Write and read registers Macros
71 * @{
72 */
73
74 /**
75 * @brief Write a value in CRC register
76 * @param __INSTANCE__ CRC Instance
77 * @param __REG__ Register to be written
78 * @param __VALUE__ Value to be written in the register
79 * @retval None
80 */
81 #define LL_CRC_WriteReg(__INSTANCE__, __REG__, __VALUE__) WRITE_REG(__INSTANCE__->__REG__, (__VALUE__))
82
83 /**
84 * @brief Read a value in CRC register
85 * @param __INSTANCE__ CRC Instance
86 * @param __REG__ Register to be read
87 * @retval Register value
88 */
89 #define LL_CRC_ReadReg(__INSTANCE__, __REG__) READ_REG(__INSTANCE__->__REG__)
90 /**
91 * @}
92 */
93
94 /**
95 * @}
96 */
97
98
99 /* Exported functions --------------------------------------------------------*/
100 /** @defgroup CRC_LL_Exported_Functions CRC Exported Functions
101 * @{
102 */
103
104 /** @defgroup CRC_LL_EF_Configuration CRC Configuration functions
105 * @{
106 */
107
108 /**
109 * @brief Reset the CRC calculation unit.
110 * @rmtoll CR RESET LL_CRC_ResetCRCCalculationUnit
111 * @param CRCx CRC Instance
112 * @retval None
113 */
114 __STATIC_INLINE void LL_CRC_ResetCRCCalculationUnit(CRC_TypeDef *CRCx)
115 {
116 WRITE_REG(CRCx->CR, CRC_CR_RESET);
117 }
118
119 /**
120 * @}
121 */
122
123 /** @defgroup CRC_LL_EF_Data_Management Data_Management
124 * @{
125 */
126
127 /**
128 * @brief Write given 32-bit data to the CRC calculator
129 * @rmtoll DR DR LL_CRC_FeedData32
130 * @param CRCx CRC Instance
131 * @param InData value to be provided to CRC calculator between between Min_Data=0 and Max_Data=0xFFFFFFFF
132 * @retval None
133 */
134 __STATIC_INLINE void LL_CRC_FeedData32(CRC_TypeDef *CRCx, uint32_t InData)
135 {
136 WRITE_REG(CRCx->DR, InData);
137 }
138
139 /**
140 * @brief Return current CRC calculation result. 32 bits value is returned.
141 * @rmtoll DR DR LL_CRC_ReadData32
142 * @param CRCx CRC Instance
143 * @retval Current CRC calculation result as stored in CRC_DR register (32 bits).
144 */
145 __STATIC_INLINE uint32_t LL_CRC_ReadData32(CRC_TypeDef *CRCx)
146 {
147 return (uint32_t)(READ_REG(CRCx->DR));
148 }
149
150 /**
151 * @brief Return data stored in the Independent Data(IDR) register.
152 * @note This register can be used as a temporary storage location for one byte.
153 * @rmtoll IDR IDR LL_CRC_Read_IDR
154 * @param CRCx CRC Instance
155 * @retval Value stored in CRC_IDR register (General-purpose 8-bit data register).
156 */
157 __STATIC_INLINE uint32_t LL_CRC_Read_IDR(CRC_TypeDef *CRCx)
158 {
159 return (uint32_t)(READ_REG(CRCx->IDR));
160 }
161
162 /**
163 * @brief Store data in the Independent Data(IDR) register.
164 * @note This register can be used as a temporary storage location for one byte.
165 * @rmtoll IDR IDR LL_CRC_Write_IDR
166 * @param CRCx CRC Instance
167 * @param InData value to be stored in CRC_IDR register (8-bit) between between Min_Data=0 and Max_Data=0xFF
168 * @retval None
169 */
170 __STATIC_INLINE void LL_CRC_Write_IDR(CRC_TypeDef *CRCx, uint32_t InData)
171 {
172 *((uint8_t __IO *)(&CRCx->IDR)) = (uint8_t) InData;
173 }
174 /**
175 * @}
176 */
177
178 #if defined(USE_FULL_LL_DRIVER)
179 /** @defgroup CRC_LL_EF_Init Initialization and de-initialization functions
180 * @{
181 */
182
183 ErrorStatus LL_CRC_DeInit(CRC_TypeDef *CRCx);
184
185 /**
186 * @}
187 */
188 #endif /* USE_FULL_LL_DRIVER */
189
190 /**
191 * @}
192 */
193
194 /**
195 * @}
196 */
197
198 #endif /* defined(CRC) */
199
200 /**
201 * @}
202 */
203
204 #ifdef __cplusplus
205 }
206 #endif
207
208 #endif /* __STM32F4xx_LL_CRC_H */
209
210 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/