HAL CRC Functions ¶
Initialization and De-initialization functions ¶
- group CRC_Exported_Functions_Group1
-
This subsection provides a set of functions allowing to initialize and deinitialize the CRC peripheral:
-
The HAL_CRC_Init() API: Allows initializing the HAL CRC driver so it can be configured and used to calculate the CRC of a given user data buffer This API is the first API to call when using the HAL CRC, it takes 2 parameters as input:
-
The HAL CRC handle : A pointer to a hal_crc_handle_t structure
-
The CRC peripheral instance: A value from the enumeration hal_crc_t
-
-
The HAL_CRC_DeInit() API: Allows de-initializing the HAL CRC driver by resetting:
-
The global CRC configuration to the default one(Default register values)
-
The independent data register to the default value
-
The handle global state to the HAL_CRC_STATE_RESET
-
Functions
-
hal_status_t
HAL_CRC_Init
(
hal_crc_handle_t
*
hcrc
,
hal_crc_t
instance
)
¶
-
Initialize the CRC according to the associated instance.
Note
The user can choose to activate his CRC clock within the HAL_CRC_Init() function by setting the USE_HAL_CRC_CLK_ENABLE_MODEL flag to HAL_CLK_ENABLE_PERIPH_ONLY in the configuration file stm32u5xx_hal_conf.h
- Parameters :
-
-
hcrc – Pointer to a hal_crc_handle_t structure that is the object maintaining the specified CRC HAL context
-
instance – hal_crc_t enumerated type variable to be set according to the physical instance
-
- Return values :
-
-
HAL_INVALID_PARAM – Invalid param return when the CRC handle is NULL
-
HAL_OK – The HAL CRC driver is initialized according to the given handle and instance
-
-
void
HAL_CRC_DeInit
(
hal_crc_handle_t
*
hcrc
)
¶
-
Deinitialize the CRC peripheral.
- Parameters :
-
hcrc – Pointer to a hal_crc_handle_t structure that is the object maintaining the specified CRC HAL context
-
- group CRC_Exported_Functions_Group1
-
This subsection provides a set of functions allowing to initialize and deinitialize the CRC peripheral:
-
The HAL_CRC_Init() API: Allows initializing the HAL CRC driver so it can be configured and used to calculate the CRC of a given user data buffer This API is the first API to call when using the HAL CRC, it takes 2 parameters as input:
-
The HAL CRC handle : A pointer to a hal_crc_handle_t structure
-
The CRC peripheral instance: A value from the enumeration hal_crc_t
-
-
The HAL_CRC_DeInit() API: Allows de-initializing the HAL CRC driver by resetting:
-
The global CRC configuration to the default one(Default register values)
-
The independent data register to the default value
-
The handle global state to the HAL_CRC_STATE_RESET
-
Functions
-
hal_status_t
HAL_CRC_Init
(
hal_crc_handle_t
*
hcrc
,
hal_crc_t
instance
)
-
Initialize the CRC according to the associated instance.
Note
The user can choose to activate his CRC clock within the HAL_CRC_Init() function by setting the USE_HAL_CRC_CLK_ENABLE_MODEL flag to HAL_CLK_ENABLE_PERIPH_ONLY in the configuration file stm32u5xx_hal_conf.h
- Parameters :
-
-
hcrc – Pointer to a hal_crc_handle_t structure that is the object maintaining the specified CRC HAL context
-
instance – hal_crc_t enumerated type variable to be set according to the physical instance
-
- Return values :
-
-
HAL_INVALID_PARAM – Invalid param return when the CRC handle is NULL
-
HAL_OK – The HAL CRC driver is initialized according to the given handle and instance
-
-
void
HAL_CRC_DeInit
(
hal_crc_handle_t
*
hcrc
)
-
Deinitialize the CRC peripheral.
- Parameters :
-
hcrc – Pointer to a hal_crc_handle_t structure that is the object maintaining the specified CRC HAL context
-
- group CRC_Exported_Functions_Group1
-
This subsection provides a set of functions allowing to initialize and deinitialize the CRC peripheral:
-
The HAL_CRC_Init() API: Allows initializing the HAL CRC driver so it can be configured and used to calculate the CRC of a given user data buffer This API is the first API to call when using the HAL CRC, it takes 2 parameters as input:
-
The HAL CRC handle : A pointer to a hal_crc_handle_t structure
-
The CRC peripheral instance: A value from the enumeration hal_crc_t
-
-
The HAL_CRC_DeInit() API: Allows de-initializing the HAL CRC driver by resetting:
-
The global CRC configuration to the default one(Default register values)
-
The independent data register to the default value
-
The handle global state to the HAL_CRC_STATE_RESET
-
Functions
-
hal_status_t
HAL_CRC_Init
(
hal_crc_handle_t
*
hcrc
,
hal_crc_t
instance
)
-
Initialize the CRC according to the associated instance.
Note
The user can choose to activate his CRC clock within the HAL_CRC_Init() function by setting the USE_HAL_CRC_CLK_ENABLE_MODEL flag to HAL_CLK_ENABLE_PERIPH_ONLY in the configuration file stm32u5xx_hal_conf.h
- Parameters :
-
-
hcrc – Pointer to a hal_crc_handle_t structure that is the object maintaining the specified CRC HAL context
-
instance – hal_crc_t enumerated type variable to be set according to the physical instance
-
- Return values :
-
-
HAL_INVALID_PARAM – Invalid param return when the CRC handle is NULL
-
HAL_OK – The HAL CRC driver is initialized according to the given handle and instance
-
-
void
HAL_CRC_DeInit
(
hal_crc_handle_t
*
hcrc
)
-
Deinitialize the CRC peripheral.
- Parameters :
-
hcrc – Pointer to a hal_crc_handle_t structure that is the object maintaining the specified CRC HAL context
-
Configuration functions ¶
- group CRC_Exported_Functions_Group2
-
This subsection provides a set of functions allowing to configure the CRC peripheral:
There are 2 categories of HAL configuration APIs
-
Global configuration APIs:
-
HAL_CRC_SetConfig() : Used to apply the user configuration hal_crc_config_t structure to the CRC peripheral
-
HAL_CRC_GetConfig() : Used to retrieve the CRC configuration and to fill it into hal_crc_config_t structure
-
HAL_CRC_ResetConfig() : Used to restore the default CRC configuration(default registers values)
-
HAL_CRC_SetConfigPolynomial() : Used to configure the polynomial coefficient, size and the CRC Init value
-
-
Unitary configuration APIs:
These APIs are intended to dynamically modify/retrieve a unitary item meaning that a global config has been already applied
Items that can alter other config parameters must not be handled within unitary APIs-
HAL_CRC_SetInputReverseMode() : Used to set the hal_crc_input_data_reverse_mode_t CRC input reverse mode
-
HAL_CRC_GetInputReverseMode() : Used to retrieve the hal_crc_input_data_reverse_mode_t CRC input reverse mode
-
HAL_CRC_SetOutputReverseMode() : Used to set the hal_crc_output_data_reverse_mode_t CRC output reverse mode
-
HAL_CRC_GetOutputReverseMode() : Used to retrieve the hal_crc_output_data_reverse_mode_t CRC output reverse mode
-
HAL_CRC_SetIndependentData() : Used to store user data in the CRC independent register
-
HAL_CRC_GetIndependentData() : Used to retrieve the stored user data from the CRC independent register
-
Each config API must check first if we are in the IDLE state (meaning HAL_CRC_Init() is performed)
Functions
-
hal_status_t
HAL_CRC_SetConfig
(
hal_crc_handle_t
*
hcrc
,
const
hal_crc_config_t
*
p_config
)
¶
-
Configure the CRC according to the user parameters.
- Parameters :
-
-
hcrc – Pointer to a hal_crc_handle_t structure that is the object maintaining the specified CRC HAL context
-
p_config – Pointer to a hal_crc_config_t structure that contains the CRC configuration
-
- Return values :
-
-
HAL_INVALID_PARAM – Invalid param return when:
-
The configuration structure pointer is null
-
Or the provided polynomial is invalid (Even polynomial or polynomial size and coefficient are incoherent)
-
-
HAL_OK – CRC peripheral has been correctly configured
-
-
void
HAL_CRC_GetConfig
(
const
hal_crc_handle_t
*
hcrc
,
hal_crc_config_t
*
p_config
)
¶
-
Retrieve the CRC configuration.
- Parameters :
-
-
hcrc – Pointer to a hal_crc_handle_t structure that is the object maintaining the specified CRC HAL context
-
p_config – Pointer to a hal_crc_config_t retrieved structure configuration
-
-
void
HAL_CRC_ResetConfig
(
hal_crc_handle_t
*
hcrc
)
¶
-
This function allows resetting the following fields to their default values:
-
The polynomial coefficient is set to 0x04C11DB7U
-
The polynomial size is set to 32-bits
-
The CRC init value is set to 0xFFFFFFFFU
-
The input reversibility mode is set to none
-
The output reversibility mode is set to none
- Parameters :
-
hcrc – Pointer to a hal_crc_handle_t structure that is the object maintaining the specified CRC HAL context
-
-
hal_status_t
HAL_CRC_SetConfigPolynomial
(
hal_crc_handle_t
*
hcrc
,
uint32_t
poly_coefficient
,
hal_crc_polynomial_size_t
poly_size
,
uint32_t
crc_init_value
)
¶
-
Configure the CRC Polynomial(Polynomial size, Polynomial coefficient, CRC init value).
- Parameters :
-
-
hcrc – Pointer to a hal_crc_handle_t structure that is the object maintaining the specified CRC HAL context
-
poly_coefficient – A uint32_t CRC Polynomial coefficient that must be odd and coherent with the poly_size
-
poly_size – CRC Polynomial size with a hal_crc_polynomial_size_t type and a value within:
-
HAL_CRC_POLY_SIZE_32B
-
HAL_CRC_POLY_SIZE_16B
-
HAL_CRC_POLY_SIZE_8B
-
HAL_CRC_POLY_SIZE_7B
-
-
crc_init_value – A uint32_t initial CRC value
-
- Return values :
-
-
HAL_INVALID_PARAM – Invalid param return when the provided polynomial is invalid (Even polynomial or polynomial size and coefficient are incoherent)
-
HAL_OK – CRC Polynomial has been correctly configured
-
-
hal_status_t
HAL_CRC_SetInputReverseMode
(
hal_crc_handle_t
*
hcrc
,
hal_crc_input_data_reverse_mode_t
input_reverse_mode
)
¶
-
Configure the CRC Input reversibility mode.
- Parameters :
-
-
hcrc – Pointer to a hal_crc_handle_t structure that is the object maintaining the specified CRC HAL context
-
input_reverse_mode – CRC input reversibility mode with a hal_crc_input_data_reverse_mode_t type and a value within:
-
HAL_CRC_INDATA_REVERSE_NONE
-
HAL_CRC_INDATA_REVERSE_BYTE
-
HAL_CRC_INDATA_REVERSE_HALFWORD
-
HAL_CRC_INDATA_REVERSE_WORD
-
-
- Return values :
-
HAL_OK – CRC input reverse mode has been correctly configured
-
hal_crc_input_data_reverse_mode_t
HAL_CRC_GetInputReverseMode
(
const
hal_crc_handle_t
*
hcrc
)
¶
-
Retrieve the CRC configured input reversibility mode.
- Parameters :
-
hcrc – Pointer to a hal_crc_handle_t structure that is the object maintaining the specified CRC HAL context
- Return values :
-
-
HAL_CRC_INDATA_REVERSE_NONE – The bit order of the input data is not affected
-
HAL_CRC_INDATA_REVERSE_BYTE – The bit-reversal is done by byte Ex: 0x1A2B3C4D becomes 0x58D43CB2
-
HAL_CRC_INDATA_REVERSE_HALFWORD – The bit-reversal is done by half word Ex: 0x1A2B3C4D becomes 0xD458B23C
-
HAL_CRC_INDATA_REVERSE_WORD – The bit-reversal is done on the full word Ex: 0x1A2B3C4D become 0xB23CD458
-
-
hal_status_t
HAL_CRC_SetOutputReverseMode
(
hal_crc_handle_t
*
hcrc
,
hal_crc_output_data_reverse_mode_t
output_reverse_mode
)
¶
-
Configure the CRC Output reversibility mode.
- Parameters :
-
-
hcrc – Pointer to a hal_crc_handle_t structure that is the object maintaining the specified CRC HAL context
-
output_reverse_mode – CRC output reversibility mode with a hal_crc_output_data_reverse_mode_t type and a value within:
-
HAL_CRC_OUTDATA_REVERSE_NONE
-
HAL_CRC_OUTDATA_REVERSE_BIT
-
-
- Return values :
-
HAL_OK – CRC output reverse mode has been correctly configured
-
hal_crc_output_data_reverse_mode_t
HAL_CRC_GetOutputReverseMode
(
const
hal_crc_handle_t
*
hcrc
)
¶
-
Retrieve the CRC configured output reversibility mode.
- Parameters :
-
hcrc – Pointer to a hal_crc_handle_t structure that is the object maintaining the specified CRC HAL context
- Return values :
-
-
HAL_CRC_OUTDATA_REVERSE_NONE – The bit order of the output data is not affected
-
HAL_CRC_OUTDATA_REVERSE_BIT – The bit-reversal of the output data is done by byte
-
-
hal_status_t
HAL_CRC_SetIndependentData
(
hal_crc_handle_t
*
hcrc
,
uint32_t
independent_data
)
¶
-
Store user data in the Independent Data register.
- Parameters :
-
-
hcrc – Pointer to a hal_crc_handle_t structure that is the object maintaining the specified CR HAL context
-
independent_data – A uint32_t user data to be stored in the Independent data register
-
- Return values :
-
HAL_OK – User independent data has been correctly configured
-
uint32_t
HAL_CRC_GetIndependentData
(
const
hal_crc_handle_t
*
hcrc
)
¶
-
Return the data stored in the Independent Data register.
- Parameters :
-
hcrc – Pointer to a hal_crc_handle_t structure that is the object maintaining the specified CRC HAL context
- Return values :
-
A – uint32_t retrieved user data from the Independent data register
-
- group CRC_Exported_Functions_Group2
-
This subsection provides a set of functions allowing to configure the CRC peripheral:
There are 2 categories of HAL configuration APIs
-
Global configuration APIs:
-
HAL_CRC_SetConfig() : Used to apply the user configuration hal_crc_config_t structure to the CRC peripheral
-
HAL_CRC_GetConfig() : Used to retrieve the CRC configuration and to fill it into hal_crc_config_t structure
-
HAL_CRC_ResetConfig() : Used to restore the default CRC configuration(default registers values)
-
HAL_CRC_SetConfigPolynomial() : Used to configure the polynomial coefficient, size and the CRC Init value
-
-
Unitary configuration APIs:
These APIs are intended to dynamically modify/retrieve a unitary item meaning that a global config has been already applied
Items that can alter other config parameters must not be handled within unitary APIs-
HAL_CRC_SetInputReverseMode() : Used to set the hal_crc_input_data_reverse_mode_t CRC input reverse mode
-
HAL_CRC_GetInputReverseMode() : Used to retrieve the hal_crc_input_data_reverse_mode_t CRC input reverse mode
-
HAL_CRC_SetOutputReverseMode() : Used to set the hal_crc_output_data_reverse_mode_t CRC output reverse mode
-
HAL_CRC_GetOutputReverseMode() : Used to retrieve the hal_crc_output_data_reverse_mode_t CRC output reverse mode
-
HAL_CRC_SetIndependentData() : Used to store user data in the CRC independent register
-
HAL_CRC_GetIndependentData() : Used to retrieve the stored user data from the CRC independent register
-
Each config API must check first if we are in the IDLE state (meaning HAL_CRC_Init() is performed)
Functions
-
hal_status_t
HAL_CRC_SetConfig
(
hal_crc_handle_t
*
hcrc
,
const
hal_crc_config_t
*
p_config
)
-
Configure the CRC according to the user parameters.
- Parameters :
-
-
hcrc – Pointer to a hal_crc_handle_t structure that is the object maintaining the specified CRC HAL context
-
p_config – Pointer to a hal_crc_config_t structure that contains the CRC configuration
-
- Return values :
-
-
HAL_INVALID_PARAM – Invalid param return when:
-
The configuration structure pointer is null
-
Or the provided polynomial is invalid (Even polynomial or polynomial size and coefficient are incoherent)
-
-
HAL_OK – CRC peripheral has been correctly configured
-
-
void
HAL_CRC_GetConfig
(
const
hal_crc_handle_t
*
hcrc
,
hal_crc_config_t
*
p_config
)
-
Retrieve the CRC configuration.
- Parameters :
-
-
hcrc – Pointer to a hal_crc_handle_t structure that is the object maintaining the specified CRC HAL context
-
p_config – Pointer to a hal_crc_config_t retrieved structure configuration
-
-
void
HAL_CRC_ResetConfig
(
hal_crc_handle_t
*
hcrc
)
-
This function allows resetting the following fields to their default values:
-
The polynomial coefficient is set to 0x04C11DB7U
-
The polynomial size is set to 32-bits
-
The CRC init value is set to 0xFFFFFFFFU
-
The input reversibility mode is set to none
-
The output reversibility mode is set to none
- Parameters :
-
hcrc – Pointer to a hal_crc_handle_t structure that is the object maintaining the specified CRC HAL context
-
-
hal_status_t
HAL_CRC_SetConfigPolynomial
(
hal_crc_handle_t
*
hcrc
,
uint32_t
poly_coefficient
,
hal_crc_polynomial_size_t
poly_size
,
uint32_t
crc_init_value
)
-
Configure the CRC Polynomial(Polynomial size, Polynomial coefficient, CRC init value).
- Parameters :
-
-
hcrc – Pointer to a hal_crc_handle_t structure that is the object maintaining the specified CRC HAL context
-
poly_coefficient – A uint32_t CRC Polynomial coefficient that must be odd and coherent with the poly_size
-
poly_size – CRC Polynomial size with a hal_crc_polynomial_size_t type and a value within:
-
HAL_CRC_POLY_SIZE_32B
-
HAL_CRC_POLY_SIZE_16B
-
HAL_CRC_POLY_SIZE_8B
-
HAL_CRC_POLY_SIZE_7B
-
-
crc_init_value – A uint32_t initial CRC value
-
- Return values :
-
-
HAL_INVALID_PARAM – Invalid param return when the provided polynomial is invalid (Even polynomial or polynomial size and coefficient are incoherent)
-
HAL_OK – CRC Polynomial has been correctly configured
-
-
hal_status_t
HAL_CRC_SetInputReverseMode
(
hal_crc_handle_t
*
hcrc
,
hal_crc_input_data_reverse_mode_t
input_reverse_mode
)
-
Configure the CRC Input reversibility mode.
- Parameters :
-
-
hcrc – Pointer to a hal_crc_handle_t structure that is the object maintaining the specified CRC HAL context
-
input_reverse_mode – CRC input reversibility mode with a hal_crc_input_data_reverse_mode_t type and a value within:
-
HAL_CRC_INDATA_REVERSE_NONE
-
HAL_CRC_INDATA_REVERSE_BYTE
-
HAL_CRC_INDATA_REVERSE_HALFWORD
-
HAL_CRC_INDATA_REVERSE_WORD
-
-
- Return values :
-
HAL_OK – CRC input reverse mode has been correctly configured
-
hal_crc_input_data_reverse_mode_t
HAL_CRC_GetInputReverseMode
(
const
hal_crc_handle_t
*
hcrc
)
-
Retrieve the CRC configured input reversibility mode.
- Parameters :
-
hcrc – Pointer to a hal_crc_handle_t structure that is the object maintaining the specified CRC HAL context
- Return values :
-
-
HAL_CRC_INDATA_REVERSE_NONE – The bit order of the input data is not affected
-
HAL_CRC_INDATA_REVERSE_BYTE – The bit-reversal is done by byte Ex: 0x1A2B3C4D becomes 0x58D43CB2
-
HAL_CRC_INDATA_REVERSE_HALFWORD – The bit-reversal is done by half word Ex: 0x1A2B3C4D becomes 0xD458B23C
-
HAL_CRC_INDATA_REVERSE_WORD – The bit-reversal is done on the full word Ex: 0x1A2B3C4D become 0xB23CD458
-
-
hal_status_t
HAL_CRC_SetOutputReverseMode
(
hal_crc_handle_t
*
hcrc
,
hal_crc_output_data_reverse_mode_t
output_reverse_mode
)
-
Configure the CRC Output reversibility mode.
- Parameters :
-
-
hcrc – Pointer to a hal_crc_handle_t structure that is the object maintaining the specified CRC HAL context
-
output_reverse_mode – CRC output reversibility mode with a hal_crc_output_data_reverse_mode_t type and a value within:
-
HAL_CRC_OUTDATA_REVERSE_NONE
-
HAL_CRC_OUTDATA_REVERSE_BIT
-
-
- Return values :
-
HAL_OK – CRC output reverse mode has been correctly configured
-
hal_crc_output_data_reverse_mode_t
HAL_CRC_GetOutputReverseMode
(
const
hal_crc_handle_t
*
hcrc
)
-
Retrieve the CRC configured output reversibility mode.
- Parameters :
-
hcrc – Pointer to a hal_crc_handle_t structure that is the object maintaining the specified CRC HAL context
- Return values :
-
-
HAL_CRC_OUTDATA_REVERSE_NONE – The bit order of the output data is not affected
-
HAL_CRC_OUTDATA_REVERSE_BIT – The bit-reversal of the output data is done by byte
-
-
hal_status_t
HAL_CRC_SetIndependentData
(
hal_crc_handle_t
*
hcrc
,
uint32_t
independent_data
)
-
Store user data in the Independent Data register.
- Parameters :
-
-
hcrc – Pointer to a hal_crc_handle_t structure that is the object maintaining the specified CR HAL context
-
independent_data – A uint32_t user data to be stored in the Independent data register
-
- Return values :
-
HAL_OK – User independent data has been correctly configured
-
uint32_t
HAL_CRC_GetIndependentData
(
const
hal_crc_handle_t
*
hcrc
)
-
Return the data stored in the Independent Data register.
- Parameters :
-
hcrc – Pointer to a hal_crc_handle_t structure that is the object maintaining the specified CRC HAL context
- Return values :
-
A – uint32_t retrieved user data from the Independent data register
-
- group CRC_Exported_Functions_Group2
-
This subsection provides a set of functions allowing to configure the CRC peripheral:
There are 2 categories of HAL configuration APIs
-
Global configuration APIs:
-
HAL_CRC_SetConfig() : Used to apply the user configuration hal_crc_config_t structure to the CRC peripheral
-
HAL_CRC_GetConfig() : Used to retrieve the CRC configuration and to fill it into hal_crc_config_t structure
-
HAL_CRC_ResetConfig() : Used to restore the default CRC configuration(default registers values)
-
HAL_CRC_SetConfigPolynomial() : Used to configure the polynomial coefficient, size and the CRC Init value
-
-
Unitary configuration APIs:
These APIs are intended to dynamically modify/retrieve a unitary item meaning that a global config has been already applied
Items that can alter other config parameters must not be handled within unitary APIs-
HAL_CRC_SetInputReverseMode() : Used to set the hal_crc_input_data_reverse_mode_t CRC input reverse mode
-
HAL_CRC_GetInputReverseMode() : Used to retrieve the hal_crc_input_data_reverse_mode_t CRC input reverse mode
-
HAL_CRC_SetOutputReverseMode() : Used to set the hal_crc_output_data_reverse_mode_t CRC output reverse mode
-
HAL_CRC_GetOutputReverseMode() : Used to retrieve the hal_crc_output_data_reverse_mode_t CRC output reverse mode
-
HAL_CRC_SetIndependentData() : Used to store user data in the CRC independent register
-
HAL_CRC_GetIndependentData() : Used to retrieve the stored user data from the CRC independent register
-
Each config API must check first if we are in the IDLE state (meaning HAL_CRC_Init() is performed)
Functions
-
hal_status_t
HAL_CRC_SetConfig
(
hal_crc_handle_t
*
hcrc
,
const
hal_crc_config_t
*
p_config
)
-
Configure the CRC according to the user parameters.
- Parameters :
-
-
hcrc – Pointer to a hal_crc_handle_t structure that is the object maintaining the specified CRC HAL context
-
p_config – Pointer to a hal_crc_config_t structure that contains the CRC configuration
-
- Return values :
-
-
HAL_INVALID_PARAM – Invalid param return when:
-
The configuration structure pointer is null
-
Or the provided polynomial is invalid (Even polynomial or polynomial size and coefficient are incoherent)
-
-
HAL_OK – CRC peripheral has been correctly configured
-
-
void
HAL_CRC_GetConfig
(
const
hal_crc_handle_t
*
hcrc
,
hal_crc_config_t
*
p_config
)
-
Retrieve the CRC configuration.
- Parameters :
-
-
hcrc – Pointer to a hal_crc_handle_t structure that is the object maintaining the specified CRC HAL context
-
p_config – Pointer to a hal_crc_config_t retrieved structure configuration
-
-
void
HAL_CRC_ResetConfig
(
hal_crc_handle_t
*
hcrc
)
-
This function allows resetting the following fields to their default values:
-
The polynomial coefficient is set to 0x04C11DB7U
-
The polynomial size is set to 32-bits
-
The CRC init value is set to 0xFFFFFFFFU
-
The input reversibility mode is set to none
-
The output reversibility mode is set to none
- Parameters :
-
hcrc – Pointer to a hal_crc_handle_t structure that is the object maintaining the specified CRC HAL context
-
-
hal_status_t
HAL_CRC_SetConfigPolynomial
(
hal_crc_handle_t
*
hcrc
,
uint32_t
poly_coefficient
,
hal_crc_polynomial_size_t
poly_size
,
uint32_t
crc_init_value
)
-
Configure the CRC Polynomial(Polynomial size, Polynomial coefficient, CRC init value).
- Parameters :
-
-
hcrc – Pointer to a hal_crc_handle_t structure that is the object maintaining the specified CRC HAL context
-
poly_coefficient – A uint32_t CRC Polynomial coefficient that must be odd and coherent with the poly_size
-
poly_size – CRC Polynomial size with a hal_crc_polynomial_size_t type and a value within:
-
HAL_CRC_POLY_SIZE_32B
-
HAL_CRC_POLY_SIZE_16B
-
HAL_CRC_POLY_SIZE_8B
-
HAL_CRC_POLY_SIZE_7B
-
-
crc_init_value – A uint32_t initial CRC value
-
- Return values :
-
-
HAL_INVALID_PARAM – Invalid param return when the provided polynomial is invalid (Even polynomial or polynomial size and coefficient are incoherent)
-
HAL_OK – CRC Polynomial has been correctly configured
-
-
hal_status_t
HAL_CRC_SetInputReverseMode
(
hal_crc_handle_t
*
hcrc
,
hal_crc_input_data_reverse_mode_t
input_reverse_mode
)
-
Configure the CRC Input reversibility mode.
- Parameters :
-
-
hcrc – Pointer to a hal_crc_handle_t structure that is the object maintaining the specified CRC HAL context
-
input_reverse_mode – CRC input reversibility mode with a hal_crc_input_data_reverse_mode_t type and a value within:
-
HAL_CRC_INDATA_REVERSE_NONE
-
HAL_CRC_INDATA_REVERSE_BYTE
-
HAL_CRC_INDATA_REVERSE_HALFWORD
-
HAL_CRC_INDATA_REVERSE_WORD
-
-
- Return values :
-
HAL_OK – CRC input reverse mode has been correctly configured
-
hal_crc_input_data_reverse_mode_t
HAL_CRC_GetInputReverseMode
(
const
hal_crc_handle_t
*
hcrc
)
-
Retrieve the CRC configured input reversibility mode.
- Parameters :
-
hcrc – Pointer to a hal_crc_handle_t structure that is the object maintaining the specified CRC HAL context
- Return values :
-
-
HAL_CRC_INDATA_REVERSE_NONE – The bit order of the input data is not affected
-
HAL_CRC_INDATA_REVERSE_BYTE – The bit-reversal is done by byte Ex: 0x1A2B3C4D becomes 0x58D43CB2
-
HAL_CRC_INDATA_REVERSE_HALFWORD – The bit-reversal is done by half word Ex: 0x1A2B3C4D becomes 0xD458B23C
-
HAL_CRC_INDATA_REVERSE_WORD – The bit-reversal is done on the full word Ex: 0x1A2B3C4D become 0xB23CD458
-
-
hal_status_t
HAL_CRC_SetOutputReverseMode
(
hal_crc_handle_t
*
hcrc
,
hal_crc_output_data_reverse_mode_t
output_reverse_mode
)
-
Configure the CRC Output reversibility mode.
- Parameters :
-
-
hcrc – Pointer to a hal_crc_handle_t structure that is the object maintaining the specified CRC HAL context
-
output_reverse_mode – CRC output reversibility mode with a hal_crc_output_data_reverse_mode_t type and a value within:
-
HAL_CRC_OUTDATA_REVERSE_NONE
-
HAL_CRC_OUTDATA_REVERSE_BIT
-
-
- Return values :
-
HAL_OK – CRC output reverse mode has been correctly configured
-
hal_crc_output_data_reverse_mode_t
HAL_CRC_GetOutputReverseMode
(
const
hal_crc_handle_t
*
hcrc
)
-
Retrieve the CRC configured output reversibility mode.
- Parameters :
-
hcrc – Pointer to a hal_crc_handle_t structure that is the object maintaining the specified CRC HAL context
- Return values :
-
-
HAL_CRC_OUTDATA_REVERSE_NONE – The bit order of the output data is not affected
-
HAL_CRC_OUTDATA_REVERSE_BIT – The bit-reversal of the output data is done by byte
-
-
hal_status_t
HAL_CRC_SetIndependentData
(
hal_crc_handle_t
*
hcrc
,
uint32_t
independent_data
)
-
Store user data in the Independent Data register.
- Parameters :
-
-
hcrc – Pointer to a hal_crc_handle_t structure that is the object maintaining the specified CR HAL context
-
independent_data – A uint32_t user data to be stored in the Independent data register
-
- Return values :
-
HAL_OK – User independent data has been correctly configured
-
uint32_t
HAL_CRC_GetIndependentData
(
const
hal_crc_handle_t
*
hcrc
)
-
Return the data stored in the Independent Data register.
- Parameters :
-
hcrc – Pointer to a hal_crc_handle_t structure that is the object maintaining the specified CRC HAL context
- Return values :
-
A – uint32_t retrieved user data from the Independent data register
-
Peripheral Control functions ¶
- group CRC_Exported_Functions_Group3
-
This subsection provides two CRC calculating functions:
-
HAL_CRC_Calculate() API: This function allows the user to calculate the CRC of an input data buffer starting with the configured CRC init value
-
HAL_CRC_Accumulate() API: This function allows the user to calculate the CRC of an input data buffer starting with the previously computed CRC as the initialization value
Functions
-
hal_status_t
HAL_CRC_Calculate
(
hal_crc_handle_t
*
hcrc
,
const
void
*
p_data
,
uint32_t
size_byte
,
uint32_t
*
p_crc_result
)
¶
-
Compute the 7, 8, 16, or 32-bit CRC value of a user data buffer starting with hcrc->Instance->INIT as initialization value.
Warning
The data size must be aligned to the configured input reverse mode (ex when input reverse mode is set to HAL_CRC_INDATA_REVERSE_WORD , the provided data size must be a multiple of words)
- Parameters :
-
-
hcrc – Pointer to a hal_crc_handle_t structure that is the object maintaining the specified CRC HAL context
-
p_data – Pointer to const void
data buffer provided by the user( buffer of bytes, halfwords or
words)
-
size_byte – A uint32_t input data buffer length (number of bytes)
-
p_crc_result – A uint32_t Calculated CRC with a size aligned with the used polynomial one
-
- Return values :
-
-
HAL_INVALID_PARAM – Invalid param return when the provided data buffer pointer is null or when this buffer is empty
-
HAL_BUSY – Another calculation process is ongoing
-
HAL_OK – The CRC is successfully calculated
-
-
hal_status_t
HAL_CRC_Accumulate
(
hal_crc_handle_t
*
hcrc
,
const
void
*
p_data
,
uint32_t
size_byte
,
uint32_t
*
p_crc_result
)
¶
-
Compute the 7, 8, 16, or 32-bit CRC value of a user data buffer starting with the previously computed CRC as the initialization value.
Note
The HAL_CRC_Accumulate() function must not be applied When the input reverse mode’s granularity is higher than the number of the bytes already calculated
Warning
The data size must be aligned to the configured input reverse mode (ex when input reverse mode is set to HAL_CRC_INDATA_REVERSE_WORD , the provided data size must be a multiple of words)
- Parameters :
-
-
hcrc – Pointer to a hal_crc_handle_t structure that is the object maintaining the specified CRC HAL context
-
p_data – Pointer to const void
data buffer provided by the user( buffer of bytes, halfwords or
words)
-
size_byte – A uint32_t input data buffer length (number of bytes)
-
p_crc_result – A uint32_t Calculated CRC with a size aligned with the used polynomial one
-
- Return values :
-
-
HAL_INVALID_PARAM – Invalid param return when the provided data buffer pointer is null or when this buffer is empty
-
HAL_BUSY – Another calculation process is ongoing
-
HAL_OK – The CRC is successfully calculated
-
-
- group CRC_Exported_Functions_Group3
-
This subsection provides two CRC calculating functions:
-
HAL_CRC_Calculate() API: This function allows the user to calculate the CRC of an input data buffer starting with the configured CRC init value
-
HAL_CRC_Accumulate() API: This function allows the user to calculate the CRC of an input data buffer starting with the previously computed CRC as the initialization value
Functions
-
hal_status_t
HAL_CRC_Calculate
(
hal_crc_handle_t
*
hcrc
,
const
void
*
p_data
,
uint32_t
size_byte
,
uint32_t
*
p_crc_result
)
-
Compute the 7, 8, 16, or 32-bit CRC value of a user data buffer starting with hcrc->Instance->INIT as initialization value.
Warning
The data size must be aligned to the configured input reverse mode (ex when input reverse mode is set to HAL_CRC_INDATA_REVERSE_WORD , the provided data size must be a multiple of words)
- Parameters :
-
-
hcrc – Pointer to a hal_crc_handle_t structure that is the object maintaining the specified CRC HAL context
-
p_data – Pointer to const void
data buffer provided by the user( buffer of bytes, halfwords or
words)
-
size_byte – A uint32_t input data buffer length (number of bytes)
-
p_crc_result – A uint32_t Calculated CRC with a size aligned with the used polynomial one
-
- Return values :
-
-
HAL_INVALID_PARAM – Invalid param return when the provided data buffer pointer is null or when this buffer is empty
-
HAL_BUSY – Another calculation process is ongoing
-
HAL_OK – The CRC is successfully calculated
-
-
hal_status_t
HAL_CRC_Accumulate
(
hal_crc_handle_t
*
hcrc
,
const
void
*
p_data
,
uint32_t
size_byte
,
uint32_t
*
p_crc_result
)
-
Compute the 7, 8, 16, or 32-bit CRC value of a user data buffer starting with the previously computed CRC as the initialization value.
Note
The HAL_CRC_Accumulate() function must not be applied When the input reverse mode’s granularity is higher than the number of the bytes already calculated
Warning
The data size must be aligned to the configured input reverse mode (ex when input reverse mode is set to HAL_CRC_INDATA_REVERSE_WORD , the provided data size must be a multiple of words)
- Parameters :
-
-
hcrc – Pointer to a hal_crc_handle_t structure that is the object maintaining the specified CRC HAL context
-
p_data – Pointer to const void
data buffer provided by the user( buffer of bytes, halfwords or
words)
-
size_byte – A uint32_t input data buffer length (number of bytes)
-
p_crc_result – A uint32_t Calculated CRC with a size aligned with the used polynomial one
-
- Return values :
-
-
HAL_INVALID_PARAM – Invalid param return when the provided data buffer pointer is null or when this buffer is empty
-
HAL_BUSY – Another calculation process is ongoing
-
HAL_OK – The CRC is successfully calculated
-
-
- group CRC_Exported_Functions_Group3
-
This subsection provides two CRC calculating functions:
-
HAL_CRC_Calculate() API: This function allows the user to calculate the CRC of an input data buffer starting with the configured CRC init value
-
HAL_CRC_Accumulate() API: This function allows the user to calculate the CRC of an input data buffer starting with the previously computed CRC as the initialization value
Functions
-
hal_status_t
HAL_CRC_Calculate
(
hal_crc_handle_t
*
hcrc
,
const
void
*
p_data
,
uint32_t
size_byte
,
uint32_t
*
p_crc_result
)
-
Compute the 7, 8, 16, or 32-bit CRC value of a user data buffer starting with hcrc->Instance->INIT as initialization value.
Warning
The data size must be aligned to the configured input reverse mode (ex when input reverse mode is set to HAL_CRC_INDATA_REVERSE_WORD , the provided data size must be a multiple of words)
- Parameters :
-
-
hcrc – Pointer to a hal_crc_handle_t structure that is the object maintaining the specified CRC HAL context
-
p_data – Pointer to const void
data buffer provided by the user( buffer of bytes, halfwords or
words)
-
size_byte – A uint32_t input data buffer length (number of bytes)
-
p_crc_result – A uint32_t Calculated CRC with a size aligned with the used polynomial one
-
- Return values :
-
-
HAL_INVALID_PARAM – Invalid param return when the provided data buffer pointer is null or when this buffer is empty
-
HAL_BUSY – Another calculation process is ongoing
-
HAL_OK – The CRC is successfully calculated
-
-
hal_status_t
HAL_CRC_Accumulate
(
hal_crc_handle_t
*
hcrc
,
const
void
*
p_data
,
uint32_t
size_byte
,
uint32_t
*
p_crc_result
)
-
Compute the 7, 8, 16, or 32-bit CRC value of a user data buffer starting with the previously computed CRC as the initialization value.
Note
The HAL_CRC_Accumulate() function must not be applied When the input reverse mode’s granularity is higher than the number of the bytes already calculated
Warning
The data size must be aligned to the configured input reverse mode (ex when input reverse mode is set to HAL_CRC_INDATA_REVERSE_WORD , the provided data size must be a multiple of words)
- Parameters :
-
-
hcrc – Pointer to a hal_crc_handle_t structure that is the object maintaining the specified CRC HAL context
-
p_data – Pointer to const void
data buffer provided by the user( buffer of bytes, halfwords or
words)
-
size_byte – A uint32_t input data buffer length (number of bytes)
-
p_crc_result – A uint32_t Calculated CRC with a size aligned with the used polynomial one
-
- Return values :
-
-
HAL_INVALID_PARAM – Invalid param return when the provided data buffer pointer is null or when this buffer is empty
-
HAL_BUSY – Another calculation process is ongoing
-
HAL_OK – The CRC is successfully calculated
-
-
Peripheral State functions ¶
- group CRC_Exported_Functions_Group4
-
This subsection provides a HAL_CRC_GetState() function allowing to retrieve the CRC peripheral global state
Functions
-
hal_crc_state_t
HAL_CRC_GetState
(
const
hal_crc_handle_t
*
hcrc
)
¶
-
Retrieve the HAL CRC Global State.
- Parameters :
-
hcrc – Pointer to a hal_crc_handle_t structure that is the object maintaining the specified CRC HAL context
- Return values :
-
-
HAL_CRC_STATE_RESET – CRC peripheral is de-initialized
-
HAL_CRC_STATE_IDLE – CRC peripheral is initialized and configured
-
HAL_CRC_STATE_ACTIVE – CRC calculation is ongoing
-
-
hal_crc_state_t
HAL_CRC_GetState
(
const
hal_crc_handle_t
*
hcrc
)
¶
- group CRC_Exported_Functions_Group4
-
This subsection provides a HAL_CRC_GetState() function allowing to retrieve the CRC peripheral global state
Functions
-
hal_crc_state_t
HAL_CRC_GetState
(
const
hal_crc_handle_t
*
hcrc
)
-
Retrieve the HAL CRC Global State.
- Parameters :
-
hcrc – Pointer to a hal_crc_handle_t structure that is the object maintaining the specified CRC HAL context
- Return values :
-
-
HAL_CRC_STATE_RESET – CRC peripheral is de-initialized
-
HAL_CRC_STATE_IDLE – CRC peripheral is initialized and configured
-
HAL_CRC_STATE_ACTIVE – CRC calculation is ongoing
-
-
hal_crc_state_t
HAL_CRC_GetState
(
const
hal_crc_handle_t
*
hcrc
)
- group CRC_Exported_Functions_Group4
-
This subsection provides a HAL_CRC_GetState() function allowing to retrieve the CRC peripheral global state
Functions
-
hal_crc_state_t
HAL_CRC_GetState
(
const
hal_crc_handle_t
*
hcrc
)
-
Retrieve the HAL CRC Global State.
- Parameters :
-
hcrc – Pointer to a hal_crc_handle_t structure that is the object maintaining the specified CRC HAL context
- Return values :
-
-
HAL_CRC_STATE_RESET – CRC peripheral is de-initialized
-
HAL_CRC_STATE_IDLE – CRC peripheral is initialized and configured
-
HAL_CRC_STATE_ACTIVE – CRC calculation is ongoing
-
-
hal_crc_state_t
HAL_CRC_GetState
(
const
hal_crc_handle_t
*
hcrc
)
User data functions ¶
- group CRC_Exported_Functions_Group5
-
This subsection provides a set of functions allowing to get and set user data:
-
HAL_CRC_SetUserData() :Used to store application user data pointer into the handle
-
HAL_CRC_GetUserData() :Used to retrieve the application user data pointer from the handle
Functions
-
void
HAL_CRC_SetUserData
(
hal_crc_handle_t
*
hcrc
,
const
void
*
p_user_data
)
¶
-
Store application user data pointer into the handle.
- Parameters :
-
-
hcrc – Pointer to a hal_crc_handle_t structure
-
p_user_data – Pointer to the user data
-
-
const
void
*
HAL_CRC_GetUserData
(
const
hal_crc_handle_t
*
hcrc
)
¶
-
Retrieve the application user data pointer from the handle.
- Parameters :
-
hcrc – Pointer to a hal_crc_handle_t structure
- Return values :
-
Pointer – to the user data
-
- group CRC_Exported_Functions_Group5
-
This subsection provides a set of functions allowing to get and set user data:
-
HAL_CRC_SetUserData() :Used to store application user data pointer into the handle
-
HAL_CRC_GetUserData() :Used to retrieve the application user data pointer from the handle
Functions
-
void
HAL_CRC_SetUserData
(
hal_crc_handle_t
*
hcrc
,
const
void
*
p_user_data
)
-
Store application user data pointer into the handle.
- Parameters :
-
-
hcrc – Pointer to a hal_crc_handle_t structure
-
p_user_data – Pointer to the user data
-
-
const
void
*
HAL_CRC_GetUserData
(
const
hal_crc_handle_t
*
hcrc
)
-
Retrieve the application user data pointer from the handle.
- Parameters :
-
hcrc – Pointer to a hal_crc_handle_t structure
- Return values :
-
Pointer – to the user data
-
- group CRC_Exported_Functions_Group5
-
This subsection provides a set of functions allowing to get and set user data:
-
HAL_CRC_SetUserData() :Used to store application user data pointer into the handle
-
HAL_CRC_GetUserData() :Used to retrieve the application user data pointer from the handle
Functions
-
void
HAL_CRC_SetUserData
(
hal_crc_handle_t
*
hcrc
,
const
void
*
p_user_data
)
-
Store application user data pointer into the handle.
- Parameters :
-
-
hcrc – Pointer to a hal_crc_handle_t structure
-
p_user_data – Pointer to the user data
-
-
const
void
*
HAL_CRC_GetUserData
(
const
hal_crc_handle_t
*
hcrc
)
-
Retrieve the application user data pointer from the handle.
- Parameters :
-
hcrc – Pointer to a hal_crc_handle_t structure
- Return values :
-
Pointer – to the user data
-