我正在处理一个字符串输入,我想在发送结果(包括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'))
我不知道预期的输出是什么。