我读DS2438的时候读温度一直是同一个值 23摄氏度。我有改变它周围的温度
unsigned char a[8],i;
Init_1_wire(); WriteOneChar(0xcc); //跳过ROM WriteOneChar(0x44); //启动温度转换 delayms(10); //温度转换需要10-20ms Init_1_wire(); WriteOneChar(0xcc); WriteOneChar(0xbe); //读暂存器 WriteOneChar(0x00); //暂存器的第0页 delay_1_wire(100);
for(i=0;i<8;i++) { a=ReadOneChar(); }
bz=a[2]&0x80;
Tzs=a[2]&0x7f; //整数 Txs=a[1]>>3; Txs=Txs*0.03125*100; //小数的高2位 |