今天使用HDC1080测温湿度遇到下面情况,请知道的的帮忙解释下,谢谢!
首先说明下,我查看HDC1080规格书,没有找到说明HDC1080测试温度结果有机会小数,然后测试温度,根据经验判断为2位小数,一直测试也挺正常的,但是,今天HDC1080测试温度时发现,当温度超过50摄氏度时,读取的温度结果明显不对,为3位小数了,导致温度整整扩大了10倍。另外测试HDC1080可测试温度范围最高为60度,然后HDC1080读取的温度就再也上不去了。不知道HDC1080确实如我上面说的,还是不是这样的,希望了解的人帮忙解释下,谢谢!
user4539276:
HDC1080_Read_MBuffer(HDC1080_Read_Temperature, buffer, 2);tempdata = (buffer[0]<<8)|buffer[1];return (int16_t)(((((buffer[0]<<8)|buffer[1])/65536.0)*165-40)*100);
读取温度值,转换时用了小数点,估计是浮点算法导致的吧。
Amy Luo:
您好,
HDC1080的温度是根据数据手册8.6.1 Temperature Register公式计算的,小数点数与您的程序设计有关。HDC1080可以测的温度范围是-40°C~125°C。