yincheng.zhong
2 天以前 2aae41035e511f47b7c434ee97f327baf6e1baf3
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
37
38
39
40
/*****************************************************************************
* @file    SoftCRC.h
* @brief   软件CRC32计算接口
* @author  AI Assistant
* @date    2025-12-21
*****************************************************************************/
 
#ifndef __SOFT_CRC_H__
#define __SOFT_CRC_H__
 
#ifdef __cplusplus
extern "C" {
#endif
 
#include <stdint.h>
#include <stddef.h>
 
/**
 * @brief 计算CRC32(兼容STM32硬件CRC的字序)
 * @param pu32Data 数据指针(按32位字处理)
 * @param u32WordCount 字数量(不是字节数)
 * @return CRC32值
 * @note 此函数兼容STM32硬件CRC外设的计算方式(按字处理)
 */
uint32_t SoftCRC_Calculate(const uint32_t *pu32Data, uint32_t u32WordCount);
 
/**
 * @brief 计算CRC32(标准实现,按字节处理)
 * @param pu8Data 数据指针(按字节处理)
 * @param u32ByteCount 字节数量
 * @return CRC32值
 * @note 标准CRC32实现,适用于任意长度的数据
 */
uint32_t SoftCRC_CalculateBytes(const uint8_t *pu8Data, uint32_t u32ByteCount);
 
#ifdef __cplusplus
}
#endif
 
#endif /* __SOFT_CRC_H__ */