|
我從DS18B20中讀出的64位ROM是28 ff 15 8a 74 16 4 72(16進(jìn)制,下同),前56位是ROM,后8位是校驗碼。DS18B20的生成多項式是 x^8 + x^5 + x^4 + 1,即二進(jìn)制 10011 0001,化十六進(jìn)制為 0x131。 我計算校驗碼的時候,根據(jù)網(wǎng)上的教程:
1) 將56位數(shù)據(jù)左移8位,變成 28 ff 15 8a 74 16 4 00
2) 用 28 ff 15 8a 74 16 4 00 對 0x131 做模2除法
但最終得到的結(jié)果卻是 0x36,而非讀出的0x72。求問我是哪里出錯了?正確的計算應(yīng)該是什么樣子的?求指導(dǎo)
下面圖片是我具體的運算過程。
crc-8-ds18b20.html.png (37.45 KB, 下載次數(shù): 152)
下載附件
2016-10-27 20:59 上傳
|
|