说是勘误其实也不能完全算是勘误,只能说是防止各位看官对手册的错误解读。
前几天调试MS5611这款气压计,按照手册来计算发现无论如何气压值都是不对的,比如说我这的1020mbar(前几天用BMP180测的),按照我自己的理解算出来的都是2300mbar,明显不对。对照手册好几遍发现没啥错误,摸索了一段时间,对照了下Arduino库封装的代码发现了问题,就是在手册上的除法,都是用移位来进行运算的,而不是因为有了符号(比如dT)就得用正常的int运算来做, 统统移位 ,不管是结果还是运算过程,都用移位(很诡异啊,跟BMP180完全不是一个套路)
下面进入正题,放计算代码:
OFF = (((int64_t)C[1]) << 16) + ((C[3] * dT) >> 7);
SENS = (((int64_t)C[0]) << 15) +