循环冗余校验(CRC)发生器可以执行带可编程多项式设定的 CRC计算,用于对数据传输的完整性和正确性进行校验。
支持四个常用的多项式:CRC-CCITT, CRC-8, CRC-16 和 CRC-32
CRC-CCITT: X16+ X12 + X5 +1
CRC-8: X8 +X2 + X +1
CRC-16: X16+ X15 + X2 +1
CRC-32: X32+ X26 + X23 +X22 + X16 + X12+ X11 + X10 +X8 + X7 + X5 +X4 + X2 + X+1支持可编程的种子值
支持对输入数据和 CRC校验值的可编程的反序设定
支持对输入数据和 CRC校验值的可编程的反码设定
支持 8/16/32位数据宽度
8-bit 写模式: 1 个 AHB 时钟周期操作
16-bit 写模式: 2 个 AHB 时钟周期操作
32-bit 写模式: 4 个 AHB 时钟周期操作
支持使用 DMA写数据执行 CRC操作结构框图
- #include "bsp_crc.h"
- void crc_module_init(void)
- {
- md_crc_init_t h_crc;
- /* Clear crc_handle_t structure */
- memset(&h_crc, 0x0, sizeof(md_crc_init_t));
- //初始化CRC
- md_crc_init_struct(&h_crc);
- md_crc_init(&h_crc);
- //使能CRC
- md_crc_enable(CRC);
- }
复制代码bsp_crc.h- #ifndef _BSP_CRC_H
- #define _BSP_CRC_H
- #include "md_crc.h"
- void crc_module_init(void);
- #endif
复制代码一周热门 更多>