如何在Matlab中为字符串输入计算CRC(最好是CRC8)

时间:2019-07-02 08:53:28

标签: matlab crc

我正在处理一个字符串输入,我想在发送结果(包括CRC的组合字符串,例如outstr= ('send a message|31'))“ |”之前计算该字符串的CRC。是一个分隔符,我将在最后一个字符串中插入它,并且不构成CRC的一部分。

我不确定是不是我不正确理解输入/输出格式,还是代码只是设计用于其他类型的输入。

任何帮助将不胜感激:)

我尝试将输入更改为:

crcCode = CRC8(uint8(GUI), uint8('VAC'))

还尝试将“ VAC”更改为数字

function crcCode = CRC8(msg, crcPoly)
[M N]=size(crcPoly);
mseg=[msg zeros(1,N-1)];
[q r]=deconv(mseg,crcPoly);
r=abs(r);
for i=1:length(r)
    a=r(i);
    if ( mod(a,2)== 0 )
        r(i)=0;
    else
        r(i)=1;
    end
end

crcCode = r(length(msg)+1:end)
rem = bitor(mseg,r);
end

输入为:

GUI = 'setParam PID kp 67.5';
crcCode = CRC8(GUI, 'VAC')

错误输出:

  

使用过滤器时出错数据类型无效。输入数组必须为数字或   符合逻辑。

     

deconv错误(第30行)
  [q,zf] = filter(b,a,[1 zeros(1,nb-na)]);

     

编码错误> CRC8(第205行)   [q r] = deconv(mseg,crcPoly);

     

编解码器错误(第79行)   crcCode = CRC8((GUI),('VAC'))

我不知道预期的输出是什么。

0 个答案:

没有答案