请问这样将DS18B20读取的温度‘值’转换成int型哪儿不对,就是读出k的值不是当前温度值。哪位能帮我改改。

2024-12-19 01:13:16
推荐回答(2个)
回答1:

很显然啊,我就看到一点不对的
zhuanhuan()

……
k=h[0]>>4; //低位右移4位,舍弃小数部分
k=h[1]<<4; //高位左移4位,舍弃符号位
k=k|h[0];
……

我绝对你这个 h[0]的值根本就没变啊, 第一句应该改为 h[0]=h[0]>>4 ,这样才能取得他的高四位值。
如果你读取的温度值仍然不对,那你就用数字示波器测试你的延时时间,ds18b20对延时还是有要求的。http://hi.baidu.com/%C9%F1%BE%AD%BB%F0%B9%E2/blog/item/2489f910c027ca986438db69.html 上面有硬件延时的方法,你可参考一下!
希望对你有所帮助~

回答2:

1111111