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