关于DS18B20温度传感器疑惑。。。。

2019-07-16 01:50发布

这是原例子的一端程序:
a = Read_OneChar();       //读取温度值低位
b = Read_OneChar();       //读取温度值高位
c = 0x0f & a;            //得到小数部分
a = a >> 4;                //低位右移4位
b = b << 4;             //高位左移4位
t = a | b;                //得到8位温度的整数部分,最高为符号位
我有点搞不懂的是按理说a是0字节的数据,b是1字节的数据,而0字节5位是温度的正负号,
3位为温度的高位
1字节
4位为温度的低位,
4位为温度小数部分

为什么c=0x0f & a;会得到小数部分呢?我觉得应该是c=0x0f & b,后面两句也应该改为左移和右移,大家说是不是这样啊!!!



友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。