CIU32 CRC — CRC32 计算

CIU32 CIU32F003_STDLib V1.0.3 CRC CRC32 计算 示例教学

CRC — CRC32 计算

固件库: CIU32F003_STDLib V1.0.3
芯片: CIU32
源文件: CIU32/CIU32F003_STDLib_V1.0.3/Projects/CRC/CRC32_Calculate/Source/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
#include "main.h"
#define BUFFER_SIZE     114

int main(void)
{   
    uint32_t crc_value;
    
    /* ϵͳʱ */
    system_clock_config();
    
    /* ʼLED */
    gpio_init();

    /* ʼCRC */
    crc_init();
 
    /* ֽڼCRCֵ */   
    crc_value = bsp_crc32_calulate((uint8_t *)g_crc_data_buffer, BUFFER_SIZE << 2);

    /* LED */
    if (crc_value != g_expected_crc_value)
    {
        std_gpio_reset_pin(LED_GPIO_PORT, LED_PIN);
    }

    while(1)
    {
       
    }
}

代码讲解

系统时钟初始化:配置 MCU 的主频和时钟树。不同芯片的时钟配置不同,一般由工具生成。

GPIO 配置:设置引脚为输出/输入模式,选择推挽/开漏输出,配置上拉/下拉。

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