|
我从DS18B20中读出的64位ROM是28 ff 15 8a 74 16 4 72(16进制,下同),前56位是ROM,后8位是校验码。DS18B20的生成多项式是 x^8 + x^5 + x^4 + 1,即二进制 10011 0001,化十六进制为 0x131。 我计算校验码的时候,根据网上的教程:
1) 将56位数据左移8位,变成 28 ff 15 8a 74 16 4 00
2) 用 28 ff 15 8a 74 16 4 00 对 0x131 做模2除法
但最终得到的结果却是 0x36,而非读出的0x72。求问我是哪里出错了?正确的计算应该是什么样子的?求指导
下面图片是我具体的运算过程。
|
|