STM32L4xx_HAL_Driver  1.14.0
stm32l4xx_hal_crc.h
Go to the documentation of this file.
1 
20 /* Define to prevent recursive inclusion -------------------------------------*/
21 #ifndef STM32L4xx_HAL_CRC_H
22 #define STM32L4xx_HAL_CRC_H
23 
24 #ifdef __cplusplus
25 extern "C" {
26 #endif
27 
28 /* Includes ------------------------------------------------------------------*/
29 #include "stm32l4xx_hal_def.h"
30 
39 /* Exported types ------------------------------------------------------------*/
47 typedef enum
48 {
55 
59 typedef struct
60 {
77  uint32_t CRCLength;
84  uint32_t InitValue;
99 
103 typedef struct
104 {
105  CRC_TypeDef *Instance;
111  __IO HAL_CRC_StateTypeDef State;
113  uint32_t InputDataFormat;
126 /* Exported constants --------------------------------------------------------*/
134 #define DEFAULT_CRC32_POLY 0x04C11DB7U
142 #define DEFAULT_CRC_INITVALUE 0xFFFFFFFFU
150 #define DEFAULT_POLYNOMIAL_ENABLE ((uint8_t)0x00U)
151 #define DEFAULT_POLYNOMIAL_DISABLE ((uint8_t)0x01U)
159 #define DEFAULT_INIT_VALUE_ENABLE ((uint8_t)0x00U)
160 #define DEFAULT_INIT_VALUE_DISABLE ((uint8_t)0x01U)
168 #define CRC_POLYLENGTH_32B 0x00000000U
169 #define CRC_POLYLENGTH_16B CRC_CR_POLYSIZE_0
170 #define CRC_POLYLENGTH_8B CRC_CR_POLYSIZE_1
171 #define CRC_POLYLENGTH_7B CRC_CR_POLYSIZE
179 #define HAL_CRC_LENGTH_32B 32U
180 #define HAL_CRC_LENGTH_16B 16U
181 #define HAL_CRC_LENGTH_8B 8U
182 #define HAL_CRC_LENGTH_7B 7U
190 /* WARNING: CRC_INPUT_FORMAT_UNDEFINED is created for reference purposes but
191  * an error is triggered in HAL_CRC_Init() if InputDataFormat field is set
192  * to CRC_INPUT_FORMAT_UNDEFINED: the format MUST be defined by the user for
193  * the CRC APIs to provide a correct result */
194 #define CRC_INPUTDATA_FORMAT_UNDEFINED 0x00000000U
195 #define CRC_INPUTDATA_FORMAT_BYTES 0x00000001U
196 #define CRC_INPUTDATA_FORMAT_HALFWORDS 0x00000002U
197 #define CRC_INPUTDATA_FORMAT_WORDS 0x00000003U
205 #define HAL_CRC_Input_Data_Reverse HAL_CRCEx_Input_Data_Reverse
206 #define HAL_CRC_Output_Data_Reverse HAL_CRCEx_Output_Data_Reverse
215 /* Exported macros -----------------------------------------------------------*/
216 
224 #define __HAL_CRC_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_CRC_STATE_RESET)
225 
231 #define __HAL_CRC_DR_RESET(__HANDLE__) ((__HANDLE__)->Instance->CR |= CRC_CR_RESET)
232 
239 #define __HAL_CRC_INITIALCRCVALUE_CONFIG(__HANDLE__, __INIT__) ((__HANDLE__)->Instance->INIT = (__INIT__))
240 
248 #define __HAL_CRC_SET_IDR(__HANDLE__, __VALUE__) (WRITE_REG((__HANDLE__)->Instance->IDR, (__VALUE__)))
249 
256 #define __HAL_CRC_GET_IDR(__HANDLE__) (((__HANDLE__)->Instance->IDR) & CRC_IDR_IDR)
257 
262 /* Private macros --------------------------------------------------------*/
267 #define IS_DEFAULT_POLYNOMIAL(DEFAULT) (((DEFAULT) == DEFAULT_POLYNOMIAL_ENABLE) || \
268  ((DEFAULT) == DEFAULT_POLYNOMIAL_DISABLE))
269 
270 
271 #define IS_DEFAULT_INIT_VALUE(VALUE) (((VALUE) == DEFAULT_INIT_VALUE_ENABLE) || \
272  ((VALUE) == DEFAULT_INIT_VALUE_DISABLE))
273 
274 #define IS_CRC_POL_LENGTH(LENGTH) (((LENGTH) == CRC_POLYLENGTH_32B) || \
275  ((LENGTH) == CRC_POLYLENGTH_16B) || \
276  ((LENGTH) == CRC_POLYLENGTH_8B) || \
277  ((LENGTH) == CRC_POLYLENGTH_7B))
278 
279 #define IS_CRC_INPUTDATA_FORMAT(FORMAT) (((FORMAT) == CRC_INPUTDATA_FORMAT_BYTES) || \
280  ((FORMAT) == CRC_INPUTDATA_FORMAT_HALFWORDS) || \
281  ((FORMAT) == CRC_INPUTDATA_FORMAT_WORDS))
282 
287 /* Include CRC HAL Extended module */
288 #include "stm32l4xx_hal_crc_ex.h"
289 
290 /* Exported functions --------------------------------------------------------*/
295 /* Initialization and de-initialization functions ****************************/
299 HAL_StatusTypeDef HAL_CRC_Init(CRC_HandleTypeDef *hcrc);
300 HAL_StatusTypeDef HAL_CRC_DeInit(CRC_HandleTypeDef *hcrc);
307 /* Peripheral Control functions ***********************************************/
311 uint32_t HAL_CRC_Accumulate(CRC_HandleTypeDef *hcrc, uint32_t pBuffer[], uint32_t BufferLength);
312 uint32_t HAL_CRC_Calculate(CRC_HandleTypeDef *hcrc, uint32_t pBuffer[], uint32_t BufferLength);
317 /* Peripheral State and Error functions ***************************************/
321 HAL_CRC_StateTypeDef HAL_CRC_GetState(CRC_HandleTypeDef *hcrc);
338 #ifdef __cplusplus
339 }
340 #endif
341 
342 #endif /* STM32L4xx_HAL_CRC_H */
343 
344 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
uint32_t OutputDataInversionMode
uint32_t GeneratingPolynomial
__IO HAL_CRC_StateTypeDef State
This file contains HAL common defines, enumeration, macros and structures definitions.
void HAL_CRC_MspInit(CRC_HandleTypeDef *hcrc)
Initializes the CRC MSP.
uint32_t HAL_CRC_Accumulate(CRC_HandleTypeDef *hcrc, uint32_t pBuffer[], uint32_t BufferLength)
Compute the 7, 8, 16 or 32-bit CRC value of an 8, 16 or 32-bit data buffer starting with the previous...
uint8_t DefaultPolynomialUse
CRC Init Structure definition.
CRC_InitTypeDef Init
Header file of CRC HAL extended module.
CRC_TypeDef * Instance
uint32_t InputDataInversionMode
uint32_t HAL_CRC_Calculate(CRC_HandleTypeDef *hcrc, uint32_t pBuffer[], uint32_t BufferLength)
Compute the 7, 8, 16 or 32-bit CRC value of an 8, 16 or 32-bit data buffer starting with hcrc->Instan...
CRC Handle Structure definition.
HAL_LockTypeDef
HAL Lock structures definition.
HAL_StatusTypeDef HAL_CRC_DeInit(CRC_HandleTypeDef *hcrc)
DeInitialize the CRC peripheral.
HAL_LockTypeDef Lock
HAL_CRC_StateTypeDef
CRC HAL State Structure definition.
uint8_t DefaultInitValueUse
void HAL_CRC_MspDeInit(CRC_HandleTypeDef *hcrc)
DeInitialize the CRC MSP.
HAL_StatusTypeDef HAL_CRC_Init(CRC_HandleTypeDef *hcrc)
Initialize the CRC according to the specified parameters in the CRC_InitTypeDef and create the associ...
HAL_CRC_StateTypeDef HAL_CRC_GetState(CRC_HandleTypeDef *hcrc)
Return the CRC handle state.