从DS18B20读出的数据怎么转换?

2024-11-22 00:01:21
推荐回答(3个)
回答(1):

a=read_byte(); //读取温度低八位的数据
b=read_byte(); //读取温度高八位的数据

t =(b*256+a)*25;
return(t>>2)
*25/4=6.25,DS18B20的分辨率是0.0625度,这里是保留了两位小数位,所以0.0625*100=6.25。详细解释一下:t>>2是右移的意思,就是把你的二进制数右移2位。通俗点讲,如果你把十进制数1234右移2位成了12.34变为原来的1/100倍,那把二进制数右移2位就是变为原来的1/4倍,所以25和t>>2是调整精度是25/4倍。

回答(2):

如下图所述

回答(3):

读取出来的是十六进制,转成10进制,百度一下十六进制转10进制!