|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
請(qǐng)教一下積各位朋友,MODBUS rtu crc下面代碼對(duì)嗎? |
| 作者:gwsino 欄目:通信技術(shù) |
procedure ByteCrc(data:byte;var crc:word); //<--這個(gè)必須加入 VAR i:BYTE; BEGIN FOR i:=0 TO 7 DO BEGIN IF ((data and $01)XOR(crc AND $0001)<>0) THEN BEGIN crc:=crc shr 1; crc:= crc XOR $A001; END ELSE crc:=crc shr 1; data:=data shr 1; // this LINE is not ELSE and executed anyway. END; END; 按此寫出的C語(yǔ)言的代碼為以下程序,請(qǐng)各位指正,謝謝 第一數(shù)組參數(shù)為校驗(yàn)的數(shù)據(jù),后一個(gè)為要校驗(yàn)數(shù)據(jù)的大小即數(shù)據(jù)量 unsigned int cal_crc(unsigned CHAR vdata[],unsigned CHAR len) { unsigned CHAR i,j; unsigned int crc=0xffff; if(len==0) return 0; for(i=0;i<len;i++) { crc^=vdata[i]; for(j=0;j<8;j++) { if(crc&0x0001) { crc>>=1; crc^=0xA001; } else crc>>=1; } } return crc; } 但運(yùn)行的結(jié)果與人家的結(jié)果不一樣啊,急死我了啊,謝謝 |
|
|
Copyright © 1998-2006 m.nhznwl.cn 浙ICP證030469號(hào) |