STM32F769IDiscovery  1.00
uDANTE Audio Networking with STM32F7 DISCO board
stm32f7xx_hal_crc.h
Go to the documentation of this file.
1 
38 /* Define to prevent recursive inclusion -------------------------------------*/
39 #ifndef __STM32F7xx_HAL_CRC_H
40 #define __STM32F7xx_HAL_CRC_H
41 
42 #ifdef __cplusplus
43  extern "C" {
44 #endif
45 
46 /* Includes ------------------------------------------------------------------*/
47 #include "stm32f7xx_hal_def.h"
48 
58 /* Exported types ------------------------------------------------------------*/
66 typedef enum
67 {
81 typedef struct
82 {
99  uint32_t CRCLength;
106  uint32_t InitValue;
128 typedef struct
129 {
136  __IO HAL_CRC_StateTypeDef State;
138  uint32_t InputDataFormat;
154 /* Exported constants --------------------------------------------------------*/
162 #define DEFAULT_CRC32_POLY 0x04C11DB7U
163 
171 #define DEFAULT_CRC_INITVALUE 0xFFFFFFFFU
172 
180 #define DEFAULT_POLYNOMIAL_ENABLE ((uint8_t)0x00U)
181 #define DEFAULT_POLYNOMIAL_DISABLE ((uint8_t)0x01U)
182 
183 
191 #define DEFAULT_INIT_VALUE_ENABLE ((uint8_t)0x00U)
192 #define DEFAULT_INIT_VALUE_DISABLE ((uint8_t)0x01U)
193 
201 #define CRC_POLYLENGTH_32B ((uint32_t)0x00000000U)
202 #define CRC_POLYLENGTH_16B ((uint32_t)CRC_CR_POLYSIZE_0)
203 #define CRC_POLYLENGTH_8B ((uint32_t)CRC_CR_POLYSIZE_1)
204 #define CRC_POLYLENGTH_7B ((uint32_t)CRC_CR_POLYSIZE)
205 
212 #define HAL_CRC_LENGTH_32B 32U
213 #define HAL_CRC_LENGTH_16B 16U
214 #define HAL_CRC_LENGTH_8B 8U
215 #define HAL_CRC_LENGTH_7B 7U
216 
224 /* WARNING: CRC_INPUT_FORMAT_UNDEFINED is created for reference purposes but
225  * an error is triggered in HAL_CRC_Init() if InputDataFormat field is set
226  * to CRC_INPUT_FORMAT_UNDEFINED: the format MUST be defined by the user for
227  * the CRC APIs to provide a correct result */
228 #define CRC_INPUTDATA_FORMAT_UNDEFINED ((uint32_t)0x00000000U)
229 #define CRC_INPUTDATA_FORMAT_BYTES ((uint32_t)0x00000001U)
230 #define CRC_INPUTDATA_FORMAT_HALFWORDS ((uint32_t)0x00000002U)
231 #define CRC_INPUTDATA_FORMAT_WORDS ((uint32_t)0x00000003U)
232 
239 /* Exported macros -----------------------------------------------------------*/
240 
249 #define __HAL_CRC_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_CRC_STATE_RESET)
250 
256 #define __HAL_CRC_DR_RESET(__HANDLE__) ((__HANDLE__)->Instance->CR |= CRC_CR_RESET)
257 
264 #define __HAL_CRC_INITIALCRCVALUE_CONFIG(__HANDLE__, __INIT__) ((__HANDLE__)->Instance->INIT = (__INIT__))
265 
272 #define __HAL_CRC_SET_IDR(__HANDLE__, __VALUE__) (WRITE_REG((__HANDLE__)->Instance->IDR, CRC_IDR_IDR, (__VALUE__)))
273 
279 #define __HAL_CRC_GET_IDR(__HANDLE__) (((__HANDLE__)->Instance->IDR) & CRC_IDR_IDR)
280 
285 /* Include CRC HAL Extension module */
286 #include "stm32f7xx_hal_crc_ex.h"
287 
288 /* Exported functions --------------------------------------------------------*/
296 /* Initialization and de-initialization functions ****************************/
305 /* Aliases for inter STM32 series compatibility */
306 #define HAL_CRC_Input_Data_Reverse HAL_CRCEx_Input_Data_Reverse
307 #define HAL_CRC_Output_Data_Reverse HAL_CRCEx_Output_Data_Reverse
308 
312 /* Peripheral Control functions ***********************************************/
313 uint32_t HAL_CRC_Accumulate(CRC_HandleTypeDef *hcrc, uint32_t pBuffer[], uint32_t BufferLength);
314 uint32_t HAL_CRC_Calculate(CRC_HandleTypeDef *hcrc, uint32_t pBuffer[], uint32_t BufferLength);
322 /* Peripheral State and Error functions ***************************************/
323 HAL_CRC_StateTypeDef HAL_CRC_GetState(CRC_HandleTypeDef *hcrc);
333 /* Private types -------------------------------------------------------------*/
342 /* Private defines -----------------------------------------------------------*/
351 /* Private variables ---------------------------------------------------------*/
360 /* Private constants ---------------------------------------------------------*/
369 /* Private macros ------------------------------------------------------------*/
373 #define IS_DEFAULT_POLYNOMIAL(__DEFAULT__) (((__DEFAULT__) == DEFAULT_POLYNOMIAL_ENABLE) || \
374  ((__DEFAULT__) == DEFAULT_POLYNOMIAL_DISABLE))
375 #define IS_DEFAULT_INIT_VALUE(__VALUE__) (((__VALUE__) == DEFAULT_INIT_VALUE_ENABLE) || \
376  ((__VALUE__) == DEFAULT_INIT_VALUE_DISABLE))
377 #define IS_CRC_POL_LENGTH(__LENGTH__) (((__LENGTH__) == CRC_POLYLENGTH_32B) || \
378  ((__LENGTH__) == CRC_POLYLENGTH_16B) || \
379  ((__LENGTH__) == CRC_POLYLENGTH_8B) || \
380  ((__LENGTH__) == CRC_POLYLENGTH_7B))
381 #define IS_CRC_INPUTDATA_FORMAT(__FORMAT__) (((__FORMAT__) == CRC_INPUTDATA_FORMAT_BYTES) || \
382  ((__FORMAT__) == CRC_INPUTDATA_FORMAT_HALFWORDS) || \
383  ((__FORMAT__) == CRC_INPUTDATA_FORMAT_WORDS))
384 
385 
390 /* Private functions prototypes ----------------------------------------------*/
399 /* Private functions ---------------------------------------------------------*/
416 #ifdef __cplusplus
417 }
418 #endif
419 
420 #endif /* __STM32F7xx_HAL_CRC_H */
421 
422 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
423 
CRC_InitTypeDef Init
CRC calculation unit.
Definition: stm32f745xx.h:320
HAL_LockTypeDef
HAL Lock structures definition.
void HAL_CRC_MspInit(CRC_HandleTypeDef *hcrc)
HAL_LockTypeDef Lock
CRC_TypeDef * Instance
HAL_CRC_StateTypeDef
#define __IO
Definition: core_cm0.h:213
void HAL_CRC_MspDeInit(CRC_HandleTypeDef *hcrc)
uint32_t OutputDataInversionMode
__IO HAL_CRC_StateTypeDef State
uint32_t InputDataInversionMode
Header file of CRC HAL extension module.
uint8_t DefaultPolynomialUse
uint32_t HAL_CRC_Accumulate(CRC_HandleTypeDef *hcrc, uint32_t pBuffer[], uint32_t BufferLength)
HAL_CRC_StateTypeDef HAL_CRC_GetState(CRC_HandleTypeDef *hcrc)
uint32_t GeneratingPolynomial
uint8_t DefaultInitValueUse
This file contains HAL common defines, enumeration, macros and structures definitions.
HAL_StatusTypeDef
HAL Status structures definition.
HAL_StatusTypeDef HAL_CRC_DeInit(CRC_HandleTypeDef *hcrc)
uint32_t HAL_CRC_Calculate(CRC_HandleTypeDef *hcrc, uint32_t pBuffer[], uint32_t BufferLength)
HAL_StatusTypeDef HAL_CRC_Init(CRC_HandleTypeDef *hcrc)