德力西CDI-E系列变频器用485通讯时CRC校验VB程序

2025-03-21 23:38:01
推荐回答(1个)
回答1:

CRC校验结果的不同从计算原理上有以下几个方面:
1.简化式不同,比如CRC8在应用上有5种常用简化式,简化式的不同结果必然不同。
2.正向算法与逆向算法,正向算法是数据右侧为高位,CRC初始值为0,简化式正向,逆向算法是数据右侧为低位,CRC初始值为ffff,简化式需逆向。
从程序运行的硬件角度看:
1.单片机和ARM数据定义不同,比如单片机中int型是16位数据,ARM中一般为32位,在PC中有可能就是64位了,这样的数据定义在CRC运算时会产生不同的结果。
2.单片机种存储数据的空间是有说法的,比如code,idata,xdata区需要弄清除你的待校验数据存储的位置,看是否真的将数据存储对了,否则有可能是00,或ff的校验结果。
从你程序上看,硬件原因的可能性大些,一定注意数据的定义,比如在51中的short int型变量时啥??你直接8位定义成char,16位定义成int,32位定义成long就完了,弄个short多愁人啊