下載手機(jī)汽配人

我在用STM32做控制器,請問DS18B20讀到的數(shù)據(jù)是補(bǔ)碼嗎?為什么讀出來的數(shù)據(jù)要進(jìn)行取反+1呢?

提問者:網(wǎng)友 2018-07-20
最佳回答
讀到的兩個字節(jié)一個是高8位,一個是低8位,將高8位乘以256再加上低8位,得到的就是DS18B20傳回的溫度數(shù)據(jù),把這個數(shù)據(jù)乘以0.0625便得到溫度數(shù)。 因為傳回的數(shù)據(jù)是補(bǔ)碼表示,而一般的單片機(jī)內(nèi)部的整數(shù)也是補(bǔ)碼表示,所以直接相乘就可以了,不需要做額外的碼制轉(zhuǎn)換。 至于你那個語句,應(yīng)該是舍去了低4位,低4位是小數(shù)部分,得到的數(shù)據(jù)就是溫度的整數(shù)部分。
回答者:網(wǎng)友
產(chǎn)品精選
搜索問答
還沒有汽配人賬號?立即注冊

我要提問

汽配限時折扣

本頁是網(wǎng)友提供的關(guān)于“我在用STM32做控制器,請問DS18B20讀到的數(shù)據(jù)是補(bǔ)碼嗎?為什么讀出來的數(shù)據(jù)要進(jìn)行取反+1呢?”的解答,僅供您參考,汽配人網(wǎng)不保證該解答的準(zhǔn)確性。