float DS18B20_Get_Temp(void)
{
u8 temp;
u8 TL,TH;
float tem;
float c;
DS18B20_Start (); // ds1820 start convert
DS18B20_Rst();
DS18B20_Check();
DS18B20_Write_Byte(0xcc);// skip rom
DS18B20_Write_Byte(0xbe);// convert
TL=DS18B20_Read_Byte(); // LSB
TH=DS18B20_Read_Byte(); // MSB
if(TH>7)
{
TH=~TH;
TL=~TL;
temp=0;//温度为负
}else temp=1;//温度为正
tem=TH; //获得高八位
tem<<=8;
tem+=TL;//获得底八位
tem=(double)tem*0.625f;//转换
if(temp)
{
c= 331.45f+0.606f*tem;//补偿后的声速
return c; //返回温度值
}
else
{
c= 331.45f-0.606f*tem;//补偿后的声速
return c;//返回温度值
}
}
老师们tem<<=8;这一句一直报错expression must have integral type是怎么回事啊