温度传感器ds1631读出来的是华氏度还是摄氏度?

安林 2014-07-21 12:09:54
如题,我下面的代码读出来的到底是华氏度还是摄氏度呢,我找不到可以佐证的文档或者什么...
谁用过这芯片帮我解释下吧,不胜感激...!!!
I2CSendByte(0x51); // send Start Convert Tcommand byte 
stop(); // send STOP
I2CBitDly(); // wait

I2CSendAddr(Address,WRITE); // send START and control byte
I2CSendByte(0xAA); // send Read Temperature command byte

I2CSendAddr(Address,READ); // send repeat START and control byte
MSB = I2CGetByte(0); // read Temp MSB
LSB = I2CGetByte(1); // read Temp LSB
stop(); // send STOP

if(MSB>=0x80) //if sign bit is set, then temp is negative
temp_c = (float)((MSB<<8 | LSB) - 65536) * 0.0625;
else
temp_c = (float)((MSB<<8|LSB) * 0.00390625);
...全文
211 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
安林 2014-07-23
  • 打赏
  • 举报
回复
问题解决了,是因为我连续试的两块板子的温度传感器都有问题,后来换了个好的,读出来的值就正常了
jk_algo 2014-07-22
  • 打赏
  • 举报
回复
还有一点,,一般的ds18b20是12位的,但是一般读取的时候读取16位,也就是两个字节。当你开始用的时候,一般只需关注低12位,其中12位是符号位,一般只需要关注低11位,乘0.0625就是实际的温度值了。
jk_algo 2014-07-22
  • 打赏
  • 举报
回复
读出来的值必须经过换算才能得到温度值,你需要换算一下,读出来的不一定就是华氏度或者是摄氏度(我感觉是酱紫的~~)
lbing7 2014-07-22
  • 打赏
  • 举报
回复
摄氏度 感觉像是IIC协议没对。。。
安林 2014-07-21
  • 打赏
  • 举报
回复
引用 2 楼 91program 的回复:
没有用过 你用它,也没有它的手册吗?这样也敢用。
手册上也没说他读出来的到底是华氏度还是摄氏度的...
91program 2014-07-21
  • 打赏
  • 举报
回复
没有用过 你用它,也没有它的手册吗?这样也敢用。
安林 2014-07-21
  • 打赏
  • 举报
回复
自己先顶一下...........
falloutmx 2014-07-21
  • 打赏
  • 举报
回复
你问我正不正常没用啊,datasheet是这么写的。
安林 2014-07-21
  • 打赏
  • 举报
回复
引用 5 楼 falloutmx 的回复:
datasheet里面咋没写?按摄氏度来的 The DS1631, DS1631A, and DS1731 measure temperature using bandgap-based temperature sensors. A delta-sigma analog-to-digital converter (ADC) converts the measured temperature to a 9-, 10-, 11-, or 12- bit (user-selectable) digital value that is calibrated in C; for F applications a lookup table or conversion routine must be used
那读出来的温度是90几度,也太不正常了吧,如果是90几的华氏度还正常....???
falloutmx 2014-07-21
  • 打赏
  • 举报
回复
datasheet里面咋没写?按摄氏度来的 The DS1631, DS1631A, and DS1731 measure temperature using bandgap-based temperature sensors. A delta-sigma analog-to-digital converter (ADC) converts the measured temperature to a 9-, 10-, 11-, or 12- bit (user-selectable) digital value that is calibrated in C; for F applications a lookup table or conversion routine must be used
wujianguo253372450 2014-07-21
  • 打赏
  • 举报
回复
小弟追问楼主问题,求大神解答。。。不胜感激!!!

27,375

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧