182 lines
		
	
	
		
			4.8 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			182 lines
		
	
	
		
			4.8 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/**
 | 
						|
  ******************************************************************************
 | 
						|
  * @file    stm32f4xx_hal_crc.h
 | 
						|
  * @author  MCD Application Team
 | 
						|
  * @brief   Header file of CRC HAL module.
 | 
						|
  ******************************************************************************
 | 
						|
  * @attention
 | 
						|
  *
 | 
						|
  * Copyright (c) 2016 STMicroelectronics.
 | 
						|
  * All rights reserved.
 | 
						|
  *
 | 
						|
  * This software is licensed under terms that can be found in the LICENSE file
 | 
						|
  * in the root directory of this software component.
 | 
						|
  * If no LICENSE file comes with this software, it is provided AS-IS.
 | 
						|
  *
 | 
						|
  ******************************************************************************
 | 
						|
  */
 | 
						|
 | 
						|
/* Define to prevent recursive inclusion -------------------------------------*/
 | 
						|
#ifndef STM32F4xx_HAL_CRC_H
 | 
						|
#define STM32F4xx_HAL_CRC_H
 | 
						|
 | 
						|
#ifdef __cplusplus
 | 
						|
extern "C" {
 | 
						|
#endif
 | 
						|
 | 
						|
/* Includes ------------------------------------------------------------------*/
 | 
						|
#include "stm32f4xx_hal_def.h"
 | 
						|
 | 
						|
/** @addtogroup STM32F4xx_HAL_Driver
 | 
						|
  * @{
 | 
						|
  */
 | 
						|
 | 
						|
/** @addtogroup CRC
 | 
						|
  * @{
 | 
						|
  */
 | 
						|
 | 
						|
/* Exported types ------------------------------------------------------------*/
 | 
						|
/** @defgroup CRC_Exported_Types CRC Exported Types
 | 
						|
  * @{
 | 
						|
  */
 | 
						|
 | 
						|
/**
 | 
						|
  * @brief  CRC HAL State Structure definition
 | 
						|
  */
 | 
						|
typedef enum
 | 
						|
{
 | 
						|
  HAL_CRC_STATE_RESET     = 0x00U,  /*!< CRC not yet initialized or disabled */
 | 
						|
  HAL_CRC_STATE_READY     = 0x01U,  /*!< CRC initialized and ready for use   */
 | 
						|
  HAL_CRC_STATE_BUSY      = 0x02U,  /*!< CRC internal process is ongoing     */
 | 
						|
  HAL_CRC_STATE_TIMEOUT   = 0x03U,  /*!< CRC timeout state                   */
 | 
						|
  HAL_CRC_STATE_ERROR     = 0x04U   /*!< CRC error state                     */
 | 
						|
} HAL_CRC_StateTypeDef;
 | 
						|
 | 
						|
 | 
						|
/**
 | 
						|
  * @brief  CRC Handle Structure definition
 | 
						|
  */
 | 
						|
typedef struct
 | 
						|
{
 | 
						|
  CRC_TypeDef                 *Instance;   /*!< Register base address        */
 | 
						|
 | 
						|
  HAL_LockTypeDef             Lock;        /*!< CRC Locking object           */
 | 
						|
 | 
						|
  __IO HAL_CRC_StateTypeDef   State;       /*!< CRC communication state      */
 | 
						|
 | 
						|
} CRC_HandleTypeDef;
 | 
						|
/**
 | 
						|
  * @}
 | 
						|
  */
 | 
						|
 | 
						|
/* Exported constants --------------------------------------------------------*/
 | 
						|
/** @defgroup CRC_Exported_Constants CRC Exported Constants
 | 
						|
  * @{
 | 
						|
  */
 | 
						|
 | 
						|
/**
 | 
						|
  * @}
 | 
						|
  */
 | 
						|
 | 
						|
/* Exported macros -----------------------------------------------------------*/
 | 
						|
/** @defgroup CRC_Exported_Macros CRC Exported Macros
 | 
						|
  * @{
 | 
						|
  */
 | 
						|
 | 
						|
/** @brief Reset CRC handle state.
 | 
						|
  * @param  __HANDLE__ CRC handle.
 | 
						|
  * @retval None
 | 
						|
  */
 | 
						|
#define __HAL_CRC_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_CRC_STATE_RESET)
 | 
						|
 | 
						|
/**
 | 
						|
  * @brief  Reset CRC Data Register.
 | 
						|
  * @param  __HANDLE__ CRC handle
 | 
						|
  * @retval None
 | 
						|
  */
 | 
						|
#define __HAL_CRC_DR_RESET(__HANDLE__) ((__HANDLE__)->Instance->CR |= CRC_CR_RESET)
 | 
						|
 | 
						|
/**
 | 
						|
  * @brief Store data in the Independent Data (ID) register.
 | 
						|
  * @param __HANDLE__ CRC handle
 | 
						|
  * @param __VALUE__  Value to be stored in the ID register
 | 
						|
  * @note  Refer to the Reference Manual to get the authorized __VALUE__ length in bits
 | 
						|
  * @retval None
 | 
						|
  */
 | 
						|
#define __HAL_CRC_SET_IDR(__HANDLE__, __VALUE__) (WRITE_REG((__HANDLE__)->Instance->IDR, (__VALUE__)))
 | 
						|
 | 
						|
/**
 | 
						|
  * @brief Return the data stored in the Independent Data (ID) register.
 | 
						|
  * @param __HANDLE__ CRC handle
 | 
						|
  * @note  Refer to the Reference Manual to get the authorized __VALUE__ length in bits
 | 
						|
  * @retval Value of the ID register
 | 
						|
  */
 | 
						|
#define __HAL_CRC_GET_IDR(__HANDLE__) (((__HANDLE__)->Instance->IDR) & CRC_IDR_IDR)
 | 
						|
/**
 | 
						|
  * @}
 | 
						|
  */
 | 
						|
 | 
						|
 | 
						|
/* Private macros --------------------------------------------------------*/
 | 
						|
/** @defgroup  CRC_Private_Macros CRC Private Macros
 | 
						|
  * @{
 | 
						|
  */
 | 
						|
 | 
						|
/**
 | 
						|
  * @}
 | 
						|
  */
 | 
						|
 | 
						|
/* Exported functions --------------------------------------------------------*/
 | 
						|
/** @defgroup CRC_Exported_Functions CRC Exported Functions
 | 
						|
  * @{
 | 
						|
  */
 | 
						|
 | 
						|
/* Initialization and de-initialization functions  ****************************/
 | 
						|
/** @defgroup CRC_Exported_Functions_Group1 Initialization and de-initialization functions
 | 
						|
  * @{
 | 
						|
  */
 | 
						|
HAL_StatusTypeDef HAL_CRC_Init(CRC_HandleTypeDef *hcrc);
 | 
						|
HAL_StatusTypeDef HAL_CRC_DeInit(CRC_HandleTypeDef *hcrc);
 | 
						|
void HAL_CRC_MspInit(CRC_HandleTypeDef *hcrc);
 | 
						|
void HAL_CRC_MspDeInit(CRC_HandleTypeDef *hcrc);
 | 
						|
/**
 | 
						|
  * @}
 | 
						|
  */
 | 
						|
 | 
						|
/* Peripheral Control functions ***********************************************/
 | 
						|
/** @defgroup CRC_Exported_Functions_Group2 Peripheral Control functions
 | 
						|
  * @{
 | 
						|
  */
 | 
						|
uint32_t HAL_CRC_Accumulate(CRC_HandleTypeDef *hcrc, uint32_t pBuffer[], uint32_t BufferLength);
 | 
						|
uint32_t HAL_CRC_Calculate(CRC_HandleTypeDef *hcrc, uint32_t pBuffer[], uint32_t BufferLength);
 | 
						|
/**
 | 
						|
  * @}
 | 
						|
  */
 | 
						|
 | 
						|
/* Peripheral State and Error functions ***************************************/
 | 
						|
/** @defgroup CRC_Exported_Functions_Group3 Peripheral State functions
 | 
						|
  * @{
 | 
						|
  */
 | 
						|
HAL_CRC_StateTypeDef HAL_CRC_GetState(const CRC_HandleTypeDef *hcrc);
 | 
						|
/**
 | 
						|
  * @}
 | 
						|
  */
 | 
						|
 | 
						|
/**
 | 
						|
  * @}
 | 
						|
  */
 | 
						|
 | 
						|
/**
 | 
						|
  * @}
 | 
						|
  */
 | 
						|
 | 
						|
/**
 | 
						|
  * @}
 | 
						|
  */
 | 
						|
 | 
						|
#ifdef __cplusplus
 | 
						|
}
 | 
						|
#endif
 | 
						|
 | 
						|
#endif /* STM32F4xx_HAL_CRC_H */
 |