1 #ifndef __SWM320_CRC_H__
2 #define __SWM320_CRC_H__
3 
4 
5 #define CRC32_IN32  0   //CRC32算法,输入数据32位
6 #define CRC32_IN16  2   //CRC32算法,输入数据16位
7 #define CRC32_IN8   4   //CRC32算法,输入数据 8位
8 #define CRC16_IN16  3   //CRC16算法,输入数据16位
9 #define CRC16_IN8   5   //CRC16算法,输入数据 8位
10 
11 
12 void CRC_Init(CRC_TypeDef * CRCx, uint32_t mode, uint32_t out_not, uint32_t out_rev, uint32_t ini_val);
13 
14 
15 /******************************************************************************************************************************************
16 * 函数名称: CRC_Write()
17 * 功能说明: CRC写入数据
18 * 输    入: uint32_t data     要写入的数据
19 * 输    出: 无
20 * 注意事项: 无
21 ******************************************************************************************************************************************/
CRC_Write(uint32_t data)22 static __INLINE void CRC_Write(uint32_t data)
23 {
24     CRC->DATAIN = data;
25 }
26 
27 /******************************************************************************************************************************************
28 * 函数名称: CRC_Result()
29 * 功能说明: 获取CRC计算结果
30 * 输    入: 无
31 * 输    出: uint32_t          CRC 计算结果
32 * 注意事项: 无
33 ******************************************************************************************************************************************/
CRC_Result(void)34 static __INLINE uint32_t CRC_Result(void)
35 {
36     return CRC->RESULT;
37 }
38 
39 #endif //__SWM320_CRC_H__
40