求助各位大佬 请问这样子的ds18b20的程序可以直接把提取出来的十六位的二进制转换到浮点数吗?T是否是我想要的温度,如果不对,请问各位大佬该补充些许什么?
//读取温度
float DS18B20_READT()
{
unsigned char Byte1,Byte2;
int temp;//16位用于存储16位二进制数
float T;
bit DS18D20_init();//初始化检验
onewire_sendbyte(0xcc);//skip rom跳过
onewire_sendbyte(0xbe);//读取命令
Byte1=onewire_receivebyte();//读取低八位
Byte2=onewire_receivebyte();//读取高八位
temp=(Byte2<<8)|Byte1;
T=temp/16.0;
return T;
}
|