求一个ds18b20例案,正负数都可以显示,精度到0.1的

2020-02-01 16:34发布

最简单的skip rom方案 或者给我讲一下最后接收到的两个byte的数据怎么处理就行了
谢谢了
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
24条回答
yiyeguzhou
2020-02-03 04:42
主要给获取温度的代码吧:
         void gettemperature()
{
        uchar temp1,temp2,temp,tflag ;
    reset();
        writebyte(0xcc);
        writebyte(0x44);
        reset();
    writebyte(0xcc);
        writebyte(0xbe);
        temp1=readchar();
        temp2=readchar();
        temp=(temp2<<8)|temp1;

        if(temp<0x0fff)
             tflag=1;
         else
         {
            tflag=0;
            temp=~temp+1;//负温度时,使其取反加一
         }
          d_temp=temp*(0.625);//正温度
          tempshi=d_temp/100;
          tempge=d_temp%100/10;
          tempxiaoshu=d_temp%10;
}

一周热门 更多>