CRC — CRC_CalculateCheckValue
固件库: PY32L020_Firmware V1.2.1
芯片: PUYA
源文件: PUYA/PY32L020_Firmware_V1.2.1/Projects/PY32L020-STK/Example/CRC/CRC_CalculateCheckValue/Src/main.c
功能简介
本示例演示 CRC 校验计算。CRC 是数据通信中最常用的错误检测方法,发送方算出 CRC 值附在数据后面,接收方重新计算并比对。
完整代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
#include "main.h"
#define BUFFER_SIZE 114
int main(void)
{
/* Reset of all peripherals, Initializes the Systick. */
HAL_Init();
BSP_LED_Init(LED_GREEN);
/* Initialize CRC */
CrcHandle.Instance = CRC;
if (HAL_CRC_Init(&CrcHandle) != HAL_OK)
{
APP_ErrorHandler();
}
/* Accumulate CRC */
uwCRCValue = HAL_CRC_Accumulate(&CrcHandle, (uint32_t *)aDataBuffer, BUFFER_SIZE);
/* Compare the CRC Value and Expected CRC Value */
if (uwCRCValue != uwExpectedCRCValue)
{
/* LED OFF */
BSP_LED_Off(LED_GREEN);
}
else
{
/* LED ON */
BSP_LED_On(LED_GREEN);
}
while (1)
{
}
}
|
代码讲解
板级初始化:初始化开发板上的 LED、按键等基础外设。