PUYA CRC — CRC_CalculateCheckValue

PUYA PY32F002B_Firmware V1.2.1 CRC CRC_CalculateCheckValue 示例教学

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、按键等基础外设。

世界是你们
使用 Hugo 构建
主题 StackJimmy 设计