网上有关MODBUS的协议不要太多,很简单,至于CRC16,有两种方法我贴个小一点的:
void calcrc(BYTE frame[],int n,BYTE *cod)
{ // 求MODBUS校验码
unsigned short crc=0xffff;
for (int i=0;i<n;i++)
{
crc^=frame[i];
for (int j=0;j<8;j++)
{
unsigned short flag=crc&1;
crc>>=1;
if (flag)
crc^=0xa001;
}
}
*(unsigned short *)cod=crc;
}
[7258]
[12375]
[10713]
[7285]
[7617]
[8999]
[10332]
[7216]
[10122]
[12142]

客服
小程序
公众号