嗨,我有MS5611晴雨表,我在制作平均值时遇到问题

首先,我试图用100个数字求和,但是有些错误如何导致feed-beak错误,有些错误仅在第三次添加时

for (int i = 0; i < 100; i++) {
      pression += barometer.getPressure(MS561101BA_OSR_4096);
      Serial.println(pression);
      delay(20);


我的输出

0.00
0.00
0.00
0.00
973.84
973.84
973.84
1947.69
1947.69
1947.69
2921.57
2921.57
2921.57

最佳答案

代码看起来不错...假设您要在进入循环之前清除“ pression”变量,我们正在研究以下内容:(http://www.te.com/commerce/DocumentDelivery/DDEController?Action=showdoc&DocId=Data+Sheet%7FMS5611-01BA03%7FB2%7Fpdf%7FEnglish%7FENG_DS_MS5611-01BA03_B2.pdf%7FCAT-BLPS0036)。未显示的内容很可能是问题所在。我退后一步,查询温度传感器而不是压力。考虑在初始化过程中向设备发出软复位,我希望您不是在这里遇到问题,而是在您的较低层代码中实际上是在从SPI(或I2C)端口写入和读取位的问题。您的延迟不应该在此处,而应在开始转换的命令和数据读取之间。观看SDO线以查看转换完成的时间,并有10到15ms的备份超时时间,以防出现问题。确保那里的基础代码是防弹的,然后担心这个上层代码。

09-07 20:45