一路向前hg
相互學(xué)習(xí),共同進(jìn)步!
級(jí)別: 略有小成
|
想請(qǐng)教各位大師,這個(gè)CRC校驗(yàn)碼到底有啥用,是如何計(jì)算 我用串口調(diào)試助手發(fā)送 讀取MODBUS溫控器溫度 00 03 0000 0004 沒有填寫校驗(yàn)碼,助手上校驗(yàn)碼哪里就自動(dòng)得出5C44 發(fā)送完后溫控器返回: 04 03 08 00DB 00DD 00CF 00D2 B3 67 B367事校驗(yàn)碼 那么問(wèn)題是: 1助手上5C44是怎么出來(lái)的 2溫控器返回B367是怎么算的 3為什么我不發(fā)送效驗(yàn)碼溫控器也能返回?cái)?shù)值 |
|
---|---|---|
|
微鑫科技
級(jí)別: 正式會(huì)員
|
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è)就是。 |
---|---|
|