下载手机汽配人

我在用STM32做控制器,请问DS18B20读到的数据是补码吗?为什么读出来的数据要进行取反+1呢?

提问者:网友 2018-07-20
最佳回答
读到的两个字节一个是高8位,一个是低8位,将高8位乘以256再加上低8位,得到的就是DS18B20传回的温度数据,把这个数据乘以0.0625便得到温度数。 因为传回的数据是补码表示,而一般的单片机内部的整数也是补码表示,所以直接相乘就可以了,不需要做额外的码制转换。 至于你那个语句,应该是舍去了低4位,低4位是小数部分,得到的数据就是温度的整数部分。
回答者:网友
产品精选
搜索问答
还没有汽配人账号?立即注册

我要提问

汽配限时折扣

本页是网友提供的关于“我在用STM32做控制器,请问DS18B20读到的数据是补码吗?为什么读出来的数据要进行取反+1呢?”的解答,仅供您参考,汽配人网不保证该解答的准确性。