ds18b20 F4是不是有误啊?

2019-07-20 19:14发布

short DS18B20_Get_Temp(void)
{
    u8 temp;
    u8 TL,TH;
          short tem;
    DS18B20_Start ();                  
    DS18B20_Rst();
    DS18B20_Check();         
    DS18B20_Write_Byte(0xcc);
    DS18B20_Write_Byte(0xbe);
    TL=DS18B20_Read_Byte();
    TH=DS18B20_Read_Byte();  
    if(TH>7)
    {
        TH=~TH;
        TL=~TL;
        temp=0;  
    }else temp=1;           
    tem=TH;
    tem<<=8;   
    tem+=TL;
    tem=(double)tem*0.625;   
        if(temp)return tem;
        else return -tem;   
}
当温度值为负的时候,不是说要将TH TL取反加一在乘0.625吗?咋没体现这一步呢?没看明白

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
xuande
1楼-- · 2019-07-21 00:42
 精彩回答 2  元偷偷看……
往事随风
2楼-- · 2019-07-21 00:54
对呀,PPT上说要加一啊,所以感觉有点不对
sky1234
3楼-- · 2019-07-21 02:37
我看了数据手册的,确实是需要取反以后加一。然后再乘上0.0625

一周热门 更多>