gpt4 book ai didi

c - 如果数据左对齐,读取 MSB 和 LSB

转载 作者:行者123 更新时间:2023-12-01 15:05:45 28 4
gpt4 key购买 nike

在完成我的类(class)作业时,我遇到了一个从 TMP102 sensor 读取温度的函数(只需要测量正温度)。
该函数首先使用 I2C 读取 MSB 和 LSB。由于温度数据是12 位且左对齐,因此函数执行如下:

temp = ( (MSB << 8) | LSB) >> 4  

我不明白为什么要这样做。有人可以帮我解释一下上面的代码行与 12 位和左对齐的数据有何关系?

最佳答案

v是温度值的一位,p是右边的一个填充位,则有

MSB = vvvvvvvv
LSB = vvvvpppp

---

MSB << 8 = vvvvvvvv 00000000
(MSB << 8) | LSB = vvvvvvvv vvvvpppp
((MSB << 8) | LSB) >> 4 = 0000vvvv vvvvvvvv

在最后一行中,您会看到正确的表示形式为 16 位值(高 4 位始终为 0)。

关于c - 如果数据左对齐,读取 MSB 和 LSB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45050196/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com