一路向前hg
相互學(xué)習(xí),共同進(jìn)步!
級別: 略有小成
![]() |
想請教各位大師,這個CRC校驗碼到底有啥用,是如何計算 我用串口調(diào)試助手發(fā)送 讀取MODBUS溫控器溫度 00 03 0000 0004 沒有填寫校驗碼,助手上校驗碼哪里就自動得出5C44 發(fā)送完后溫控器返回: 04 03 08 00DB 00DD 00CF 00D2 B3 67 B367事校驗碼 那么問題是: 1助手上5C44是怎么出來的 2溫控器返回B367是怎么算的 3為什么我不發(fā)送效驗碼溫控器也能返回數(shù)值 |
|
---|---|---|
|
一路向前hg
相互學(xué)習(xí),共同進(jìn)步!
級別: 略有小成
![]() |
![]() ![]() |
|
---|---|---|
|
一路向前hg
相互學(xué)習(xí),共同進(jìn)步!
級別: 略有小成
![]() |
發(fā)送時點(diǎn)擊了校驗碼按鈕就能接受到數(shù)值,沒有點(diǎn)擊就收不到 |
|
---|---|---|
|
一路向前hg
相互學(xué)習(xí),共同進(jìn)步!
級別: 略有小成
![]() |
如圖,回復(fù)的 04 03 08 00 DD 00 E0 00 DF 00 E1 F9 72 00 DD 00 E0 00 DF 00 E1為接收的數(shù)值 F972怎么得來的啊 |
|
---|---|---|
|
夢雨天涯
微信hui530527 &
級別: 網(wǎng)絡(luò)英雄
![]() |
圖片:
![]() 最好上傳說明書,我也不知道你的校驗碼是否正確……但是我的用過別的變頻器通訊的,是正確的 |
|
---|---|---|
|
夢雨天涯
微信hui530527 &
級別: 網(wǎng)絡(luò)英雄
![]() |
圖片:
![]() 好好想一下……返回的校驗我看了,是一樣的,也就是你發(fā)送的有問題 |
|
---|---|---|
|
一路向前hg
相互學(xué)習(xí),共同進(jìn)步!
級別: 略有小成
![]() |
你第一個站號寫得00 應(yīng)該是04 我主要不明白這個CRC校驗是咋算的,, ![]() |
|
---|---|---|
|
夢雨天涯
微信hui530527 &
級別: 網(wǎng)絡(luò)英雄
![]() |
你管他怎么算用軟件來算就對了 |
|
---|---|---|
|
一路向前hg
相互學(xué)習(xí),共同進(jìn)步!
級別: 略有小成
![]() |
謝謝回答,這個校驗碼是我發(fā)送多少,接收就是多少嗎? 還是根據(jù)發(fā)送的數(shù)據(jù)算出校驗碼是多少,就是多少 |
|
---|---|---|
|
txarcher
級別: 略有小成
![]() |
CRC校驗碼在網(wǎng)上是有計算公式的,不過現(xiàn)在一般的指令都自帶了,所以很少去記了,校驗碼是按找你發(fā)送的數(shù)據(jù)進(jìn)行計算的, 如你發(fā)送6個數(shù)據(jù),CRC就會根據(jù)你這個6個數(shù)據(jù)來計算,返回的數(shù)據(jù)是,返回8個數(shù)據(jù),最后兩位是CRC校驗碼,根據(jù)前面的6個數(shù)據(jù)來計算得出 |
---|---|
|
微鑫科技
級別: 正式會員
![]() |
unsigned int MOD_BUS(void)//MODBUS校驗碼計算函數(shù) { unsigned int x=0xffff; unsigned char i,n; for(i=0;i<12;i++)//這里的12是指有12個數(shù)據(jù),根據(jù)不同的數(shù)據(jù)量做適當(dāng)?shù)男薷?br /> { x^=SYS_DATA; for(n=0;n<8;n++) { if(x&0x01) { x=(x>>1)^0xa001; } else { x=x>>1; } } } return x; } 這個就是。 |
---|---|
|