management functions.
More...
|
| 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 previously computed CRC as initialization value. More...
|
| |
| 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->Instance->INIT as initialization value. More...
|
| |
management functions.
===============================================================================
##### Peripheral Control functions #####
===============================================================================
[..] This section provides functions allowing to:
(+) compute the 7, 8, 16 or 32-bit CRC value of an 8, 16 or 32-bit data buffer
using combination of the previous CRC value and the new one.
[..] or
(+) compute the 7, 8, 16 or 32-bit CRC value of an 8, 16 or 32-bit data buffer
independently of the previous CRC value.
◆ HAL_CRC_Accumulate()
| 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 previously computed CRC as initialization value.
- Parameters
-
| hcrc | CRC handle |
| pBuffer | pointer to the input data buffer, exact input data format is provided by hcrc->InputDataFormat. |
| BufferLength | input data buffer length (number of bytes if pBuffer type is * uint8_t, number of half-words if pBuffer type is * uint16_t, number of words if pBuffer type is * uint32_t). |
- Note
- By default, the API expects a uint32_t pointer as input buffer parameter. Input buffer pointers with other types simply need to be cast in uint32_t and the API will internally adjust its input data processing based on the handle field hcrc->InputDataFormat.
- Return values
-
| uint32_t | CRC (returned value LSBs for CRC shorter than 32 bits) |
Definition at line 287 of file stm32l4xx_hal_crc.c.
297 case CRC_INPUTDATA_FORMAT_WORDS:
299 for (index = 0U; index < BufferLength; index++)
301 hcrc->
Instance->DR = pBuffer[index];
306 case CRC_INPUTDATA_FORMAT_BYTES:
307 temp =
CRC_Handle_8(hcrc, (uint8_t *)pBuffer, BufferLength);
310 case CRC_INPUTDATA_FORMAT_HALFWORDS:
311 temp =
CRC_Handle_16(hcrc, (uint16_t *)(
void *)pBuffer, BufferLength);
static uint32_t CRC_Handle_8(CRC_HandleTypeDef *hcrc, uint8_t pBuffer[], uint32_t BufferLength)
Enter 8-bit input data to the CRC calculator. Specific data handling to optimize processing time...
__IO HAL_CRC_StateTypeDef State
static uint32_t CRC_Handle_16(CRC_HandleTypeDef *hcrc, uint16_t pBuffer[], uint32_t BufferLength)
Enter 16-bit input data to the CRC calculator. Specific data handling to optimize processing time...
◆ HAL_CRC_Calculate()
| 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->Instance->INIT as initialization value.
- Parameters
-
| hcrc | CRC handle |
| pBuffer | pointer to the input data buffer, exact input data format is provided by hcrc->InputDataFormat. |
| BufferLength | input data buffer length (number of bytes if pBuffer type is * uint8_t, number of half-words if pBuffer type is * uint16_t, number of words if pBuffer type is * uint32_t). |
- Note
- By default, the API expects a uint32_t pointer as input buffer parameter. Input buffer pointers with other types simply need to be cast in uint32_t and the API will internally adjust its input data processing based on the handle field hcrc->InputDataFormat.
- Return values
-
| uint32_t | CRC (returned value LSBs for CRC shorter than 32 bits) |
Definition at line 339 of file stm32l4xx_hal_crc.c.
349 __HAL_CRC_DR_RESET(hcrc);
353 case CRC_INPUTDATA_FORMAT_WORDS:
355 for (index = 0U; index < BufferLength; index++)
357 hcrc->
Instance->DR = pBuffer[index];
362 case CRC_INPUTDATA_FORMAT_BYTES:
364 temp =
CRC_Handle_8(hcrc, (uint8_t *)pBuffer, BufferLength);
367 case CRC_INPUTDATA_FORMAT_HALFWORDS:
369 temp =
CRC_Handle_16(hcrc, (uint16_t *)(
void *)pBuffer, BufferLength);
static uint32_t CRC_Handle_8(CRC_HandleTypeDef *hcrc, uint8_t pBuffer[], uint32_t BufferLength)
Enter 8-bit input data to the CRC calculator. Specific data handling to optimize processing time...
__IO HAL_CRC_StateTypeDef State
static uint32_t CRC_Handle_16(CRC_HandleTypeDef *hcrc, uint16_t pBuffer[], uint32_t BufferLength)
Enter 16-bit input data to the CRC calculator. Specific data handling to optimize processing time...