我读ROM的8为分别是 28 B1 46 38 02 00 00 40 ,CRC校验程序如下:
- uchar CRC8() //DS18B20的CRC8校验程序
- {
- uchar i,x;
- uchar crcbuff;
- uchar crc;
- for(x = 0; x <8; x++)
- {
- crcbuff=RomCode[x];
- for(i = 0; i < 8; i++)
- {
- if(((crc ^ crcbuff)&0x01)==0)
- crc >>= 1;
- else
- {
- crc ^= 0x18; //CRC=X8+X5+X4+1
- crc >>= 1;
- crc |= 0x80;
- }
- crcbuff >>= 1;
- }
- }
- return crc;
- }
复制代码
返回的并不是0啊,校验不成功。。是数据有问题还是程序有问题呢?
111.JPG (23.94 KB, 下载次数: 0)
下载附件
2014-10-24 15:11 上传
这个是按手册原理写的,更容易看懂,查表的先需求自己算出来吧。
一周热门 更多>