我正在研究 ST 温度传感器( hts221 )
,我使用 I2C
命令与传感器通信。
我从文档中看到如下文本。
在此处输入代码温度数据表示为 TEMP_OUT_H 和 TEMP_OUT_L 2 的补码。
下图是文档中的描述。
从传感器读取的温度数据
如下所示
TEMP_OUT_L is 0xA8
TEMP_OUT_H is 0xFF
如何将TEMP_OUT_L和TEMP_OUT_H的值转换为温度数据?
提前致谢?
最佳答案
通过连接两个值中的位,形成单个 16 位值:
const temp_h = i2c_read_byte(TEMP_OUT_H);
const temp_l = i2c_read_byte(TEMP_OUT_L);
const uint16_t temp = (temp_h << 8) | temp_l;
这只是假设您有一个可用于读出两个寄存器的函数uint8_t i2c_read_byte(uint8_t address);
。
当然,下一步是将这个原始二进制数转换为某种适当单位的实际温度(例如摄氏度或开尔文)。为此,您需要从数据表中获取更多信息。
关于c - 如何转换温度传感器得到的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25322210/