上位机计算modbus的CRC16校验值的程序
By
admin
at 2019-09-09 • 2人收藏 • 2666人看过
如题:
import console; //计算modbus的CRC16校验值 var modbus_calc_CRC=function(pucCommandData,ucCommandLen){ var usCRC = 0xFFFF; for(i=1;ucCommandLen;1){ usCRC ^= pucCommandData[i]; for(j=1;8;1){ if (usCRC & 1) { usCRC >>= 1; usCRC ^= 0xA001; } else { usCRC >>= 1; } } } //低字节在前 pucCommandData[ucCommandLen + 1] = usCRC&0x0ff; //高字节在后 pucCommandData[ucCommandLen + 2] = (usCRC >> 8) & 0x0ff; return pucCommandData; } //举例 var tab = {0x12;0x22}; //计算 var ret = modbus_calc_CRC(tab,#tab); for(i=1;#ret;1){ //输出结果 console.log( string.format("%02X",ret[i]) ); } console.pause(true);
4 个回复 | 最后更新于 2021-12-05
登录后方可回帖
捉bug,里面循环的变量应该是j吧