打印
[国产单片机]

【东软载波ESF0654 PDS开发板活动】测试RT-Thread+循环冗余校...

[复制链接]
625|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
循环冗余校验(CRC)发生器可以执行带可编程多项式设定的 CRC计算,用于对数据传输的完整性和正确性进行校验。
支持四个常用的多项式:CRC-CCITTCRC-8CRC-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操作
结构框图


使用特权

评论回复

相关帖子

沙发
一路向北lm|  楼主 | 2019-12-26 14:46 | 只看该作者
CRC 发生器可以执行带可编程多项式设定的 CRC 运算。多项式操作包括 CRC-CCITT,CRC-8, CRC-16 和 CRC-32。用户可以通过设置 MODE选择 CRC多项式操作模式。
操作示例:
1. 通过设置CRC_CR.EN 使能 CRC 发生器
2. CRC 运算初始化设置
a. 通过设置CRC_CR.CHSINV 配置 CRC 校验值反码
b. 通过设置CRC_CR.CHSREV 配置 CRC 校验值位反序
c. 通过设置CRC_CR.DATINV 配置 CRC 写入数据反码
d. 通过设置CRC_CR.DATREV 配置 CRC 写入数据位反序
e. 通过设置CRC_CR.MODE 配置 CRC 校验模式
f. 通过设置CRC_CR.DATLEN 配置 CRC 写入数据长度。
3. 通过设置CRC_CR.RST 执行 CRC 复位, CRC 复位将装载初始种子值到 CRC 运算电路。
4. 写数据到CRC_DATA 寄存器来计算 CRC 校验值。
5. 通过读CRC_CHECKSUM 寄存器来获得 CRC 校验结果 。

使用特权

评论回复
板凳
一路向北lm|  楼主 | 2019-12-26 14:47 | 只看该作者
bsp_crc.c
#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


使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

277

主题

3805

帖子

76

粉丝