本帖最后由 冥王星002 于 2019-1-17 08:24 编辑
LIS3DH是ST在市场上应用最为普遍的加速度传感器之一,客户群众多。不过对其内置的温度传感器用法,很多人搞不明白,尤其是从寄存器数值到实际温度值之间的转换方法。
从LIS3DH 数据手册的Table 5 下方的Note可知该内置温度传感器是8bit 分辨率,因此占用输出寄存器的低8bit即可,请注意该值为带符号8bit数;
ADC3可配置为内部连接到该温度传感器,且温度AD值以补码的形式存储在OUT_ADC3_L(0Ch)这个寄存器中。获取实际温度值的步骤如下:
1. 读0Ch寄存器,获取温度AD数值,假设为0xF9;
2. 求该值的原码,即对0xF9求原码(0xF9转换成二进制 1111 1001,最高位是符号位保持不便,按位取反再加1,结果为1000 0111,转换成十进制是 -7 );
3. 最关键的一步,将结果 +25(别问我为什么要加25,这是咨询了ST sensor FAE之后获得的答案,他们产品就是这样设计的),即+18℃ 即为实际温度数值。
总结:关键词,低8位,转原码,加+25.
|
内置的温度传感器 的测量范围是多少? 我试过用热风枪吹到113摄氏度 ,再高了没敢试了,哪位大侠知道这个信息,分享下