線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:6113
推到 Plurk!
推到 Facebook!

CRC碼的計算

 
kan0515
中階會員


發表:56
回覆:120
積分:50
註冊:2002-06-24

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-06-26 10:45:02 IP:211.23.xxx.xxx 未訂閱
想要請問一下: 我是使用SPComm在delphi中與rs232通訊 但是因為封包送出時須加入crc碼 我想要請問一下, 我的封包是使用text的格式 但在計算時始終不對, 想要請教一下,有沒有解決的方法
領航天使
站長


發表:12216
回覆:4186
積分:4084
註冊:2001-07-25

發送簡訊給我
#2 引用回覆 回覆 發表時間:2002-06-26 20:39:53 IP:192.168.xxx.xxx 未訂閱
引言: 想要請問一下: 我是使用SPComm在delphi中與rs232通訊 但是因為封包送出時須加入crc碼 我想要請問一下, 我的封包是使用text的格式 但在計算時始終不對, 想要請教一下,有沒有解決的方法
常見CRC運算有 ADD XOR兩種 先看是那一種 若是ADD 可能要配合 MOD 若是XOR 要但是注意 one byte or two bytes 還有就是要注意 start code & end code 要不要計算進入 有的還有 0d 0a 換行碼 總之規格手冊要看清楚 ~~~Delphi K.Top討論區站長~~~
------
~~~Delphi K.Top討論區站長~~~
kan0515
中階會員


發表:56
回覆:120
積分:50
註冊:2002-06-24

發送簡訊給我
#3 引用回覆 回覆 發表時間:2002-06-27 14:04:23 IP:211.23.xxx.xxx 未訂閱
謝謝您的回答 再請問一下,如果我必須使用16進位碼去計算crc 那…該如何作呢? p.S我目前是將16進位碼轉成字串 但是,算出來的值是不正確的 而程式卻又必須使用字串去運算 我的字串是1001 C0 01 01 1002 1003 這是16進位制的編碼 算出來的值應是DC50才是 若我直接用字串,則結果是C644 若轉為字串,則它會先轉為10進位的整數 算的結果,當然還是不正確的… 有沒有辦法讓我可以直接使用數字去算CRC碼 謝謝!!
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#4 引用回覆 回覆 發表時間:2002-06-27 14:45:09 IP:211.22.xxx.xxx 未訂閱
例:
function CRC(Code: string): Byte;
var i: Integer;
  b: Byte;
begin
  Result := $00;
  for i := 1 to Length(Code) do
    Result := Result xor Byte(Code[i]);
    // 或 Result := Result and Byte(Code[i]);
end;
kan0515
中階會員


發表:56
回覆:120
積分:50
註冊:2002-06-24

發送簡訊給我
#5 引用回覆 回覆 發表時間:2002-06-27 16:40:04 IP:211.23.xxx.xxx 未訂閱
謝謝…感激不盡
brucelee
一般會員


發表:1
回覆:4
積分:1
註冊:2002-05-21

發送簡訊給我
#6 引用回覆 回覆 發表時間:2002-09-05 11:32:18 IP:61.216.xxx.xxx 未訂閱
看到Delphi K.Top討論區 有關CRC的討論,有一個問題也許有人能會幫幫我? 我的問題是:我用Spcomm送一組資料要到控溫機上,格式是STX AA 01 1120 ETX BCC,而BCC是計算STX&ETX間的字元,我是過了一般的CheckSum,CRC計算都不能算出正確的BCC,手冊上告訴我計算方法是 Horizontal Even Parity Check,請哪一未能幫幫我! bruce
------
bruce
kkccgg
初階會員


發表:50
回覆:54
積分:30
註冊:2002-07-28

發送簡訊給我
#7 引用回覆 回覆 發表時間:2002-10-25 23:27:02 IP:203.204.xxx.xxx 未訂閱
看到Delphi K.Top討論區 有關CRC的討論,有一個問題也許有人能會幫幫我? 我的問題是:我用Spcomm送一組資料要到控溫機上,格式是STX+AA 01 1120+ETX+BCC,而BCC是計算STX&ETX間的字元,我是過了一般的CheckSum,CRC計算都不能算出正確的BCC,手冊上告訴我計算方法是 Horizontal Even Parity Check,請哪一未能幫幫我!    格式是STX+AA 011120+ETX+BCC這是RKC錶嗎 ? 應該是把所有字元ascii作xor就可達成BCC,希望這是正確的資料             謝謝               
系統時間:2024-04-25 15:27:57
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!