找回密码
 立即注册

QQ登录

只需一步,快速开始

打印 上一主题 下一主题
开启左侧

M453的CRC模块计算CRC-16/MODBUS设置的问题请教

[复制链接]
楼主
chhuang16 发表于 2015-12-10 11:19:38 | 显示全部楼层

CRC設定上開這兩個
CRC_WDATA_RVS
CRC_CHECKSUM_RVS
就可以跑出0x37DD的數值了

程式都幫你寫好了,你試看看吧
int main()
{
    const uint8_t acCRCSrcPattern[] = {0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38};
    uint32_t i,u32TargetChecksum = 0x37DD, u32CalChecksum = 0;


    /* Unlock protected registers */
    SYS_UnlockReg();

    SYS_Init();

    /* Lock protected registers */
    SYS_LockReg();

    /* Init UART0 to 115200-8n1 for print message */
    UART_Open(UART0, 115200);

Bsp_Crc_Controller_Reset();
Bsp_Crc_Module_Enable();
CRC_Open(CRC_16, CRC_WDATA_RVS|CRC_CHECKSUM_RVS, 0xFFFF, CRC_CPU_WDATA_8);
for(i = 0; i < sizeof(acCRCSrcPattern); i++)
{
        CRC_WRITE_DATA((acCRCSrcPattern[i] & 0xFF));
}
               
/* Get CRC-8 checksum value */
    u32CalChecksum = CRC_GetChecksum();
    printf("CRC checksum is 0x%X ... %s.\n", u32CalChecksum, (u32CalChecksum == u32TargetChecksum) ? "PASS" : "FAIL");

    while(1);

}

回复 支持 1 反对 0

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies |上传

本版积分规则

新唐MCU