woshigeshuai 发表于 2018-5-13 12:53:15

寻CRC16校验计算软件

本帖最后由 woshigeshuai 于 2018-5-13 13:49 编辑

现在在弄CRC16校验,碰到一个校验,找不到软件,需要找到软件,检察自己校验的对不对

unsigned int CRC16_Checkout ( unsigned char *puchMsg, unsigned int usDataLen )
{
        unsigned int i,j,crc_reg,check;
        crc_reg = 0xFFFF;
        for(i=0;i<usDataLen;i++)
        {
                crc_reg = (crc_reg>>8) ^ puchMsg;
                for(j=0;j<8;j++)
                {
                        check = crc_reg & 0x0001;
                        crc_reg >>= 1;
                        if(check==0x0001)
                        {
                                crc_reg ^= 0xA001;
                        }
                }
        }
        return crc_reg;
}

顺便发几个自己常用的校验工具


woshigeshuai 发表于 2018-5-13 13:13:42

hpy168888 发表于 2018-5-13 13:01
搜索Sscomm

谢谢
上面的CRC16跟这个不一样

bolizhicheng204 发表于 2018-5-13 13:16:08

论坛搜下一大堆,我都发过

woshigeshuai 发表于 2018-5-13 13:19:08

bolizhicheng204 发表于 2018-5-13 13:16
论坛搜下一大堆,我都发过

谢谢,你发的我用过,不行,计算方式不一样。

woshigeshuai 发表于 2018-5-13 13:19:57

QN=20160801085857223;ST=32;CN=1062;PW=100000;MN=010000A8900016F000169DC0;Flag=5;CP=&&RtdInterval=30&&1C80
最后的1C80是校验结果

奮闘ing 发表于 2018-5-13 13:41:46

这个你看一下可不可以,试试吧{:smile:}

lxa0 发表于 2018-5-13 14:00:49

奮闘ing 发表于 2018-5-13 13:41
这个你看一下可不可以,试试吧

感谢楼上坛友资料~~~~~~~~~~~

duan2822 发表于 2018-5-14 15:54:59

正需要,用下

fbestwish1 发表于 2018-5-14 15:57:03

在线 CRC 计算器
http://www.sunshine2k.de/coding/javascript/crc/crc_js.html

ywd683 发表于 2018-6-6 06:55:16

正需要,用下,感谢楼上坛友资料~~~~~~~~~~~

ilan2003 发表于 2018-6-6 08:13:55

https://www.amobbs.com/forum.php?mod=viewthread&tid=5503224&highlight=CRC

d__xin 发表于 2018-6-6 11:36:19

woshigeshuai 发表于 2018-5-13 13:19
QN=20160801085857223;ST=32;CN=1062;PW=100000;MN=010000A8900016F000169DC0;Flag=5;CP=&&RtdInterval=30& ...

212协议里面有校验程序啊,直接取来用就行了

CRC 校验算法示例:
/****************************************************************************************
函 数: CRC16_Checkout
描 述: CRC16 循环冗余校验算法。
参 数 一: *puchMsg:需要校验的字符串指针
参 数 二: usDataLen:要校验的字符串长度
返 回 值: 返回 CRC16 校验码
****************************************************************************************/
unsigned int CRC16_Checkout ( unsigned char *puchMsg, unsigned int usDataLen )
{
unsigned int i,j,crc_reg,check;
crc_reg = 0xFFFF;
for(i=0;i<usDataLen;i++)
{
crc_reg = (crc_reg>>8) ^ puchMsg;
for(j=0;j<8;j++)
{
check = crc_reg & 0x0001;
crc_reg >>= 1;
if(check==0x0001)
{
crc_reg ^= 0xA001;
}
}
}
return crc_reg;
}

wofei3344 发表于 2018-6-20 10:25:26

是用在ModBus上的CRC校验软件吗

lzyyoumuren 发表于 2020-12-1 14:51:24

楼主这个crc校验小软件找到了吗?
页: [1]
查看完整版本: 寻CRC16校验计算软件