CRC — CRC16 计算
固件库: CIU32F003_STDLib V1.0.3
芯片: CIU32
源文件: CIU32/CIU32F003_STDLib_V1.0.3/Projects/CRC/CRC16_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)
{
uint16_t crc_value;
/* ϵͳʱΪRCH48MHz */
system_clock_config();
/* ʼLED */
gpio_init();
/* ʼCRC */
crc_init();
/* ֽڼCRCֵ */
crc_value = bsp_crc16_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 配置:设置引脚为输出/输入模式,选择推挽/开漏输出,配置上拉/下拉。