MS5611气压传感器手册勘误

说是勘误其实也不能完全算是勘误,只能说是防止各位看官对手册的错误解读。

前几天调试MS5611这款气压计,按照手册来计算发现无论如何气压值都是不对的,比如说我这的1020mbar(前几天用BMP180测的),按照我自己的理解算出来的都是2300mbar,明显不对。对照手册好几遍发现没啥错误,摸索了一段时间,对照了下Arduino库封装的代码发现了问题,就是在手册上的除法,都是用移位来进行运算的,而不是因为有了符号(比如dT)就得用正常的int运算来做, 统统移位 ,不管是结果还是运算过程,都用移位(很诡异啊,跟BMP180完全不是一个套路)
下面进入正题,放计算代码:

OFF = (((int64_t)C[1]) << 16) + ((C[3] * dT) >> 7);
SENS = (((int64_t)C[0]) << 15) + ((C[2] * dT) >> 8);
P = (((D[0] * SENS)>>21) - OFF)>>15;

各位看官看到这应该知道是什么意思了。(当然你需要看一遍手册而不是只过来抄下代码)
具体的高度换算公式网上一抓一把,就不多说了,另外如果发现气压什么的比标准大气压大之类的,先别急着改代码,先看看自己本地的气压到底是多少,我这的气压就比标准的1013高很多,基本能到1022mbar上下。

就说这些吧,以上。

你可能感兴趣的:(STM32,STM32,MS5611,气压传感器,勘误)