下載手機(jī)汽配人

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

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

我要提問(wèn)

汽配限時(shí)折扣

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