STM32F070读取SHT40-AD1B-R2时数据偶尔异常
STM32F070读取SHT40-AD1B-R2时数据偶尔异常。 SHT40 读出来偶尔异常,大概率是 I2C 有丢包或者 ACK 没跟上。 线太长或者拉电阻太大太小,都可能导致读数偶发异常。 你用的 I2C 是软件模拟的还是硬件的?硬件 I2C 稳定性更好一点。 读的时候有加 CRC 校验吗?SHT40 原厂推荐校验一下读值对不对。 供电噪声也会影响,尤其是测温湿度,电源抖动大就容易飘。 连续读的时候给 SHT40 足够的转换时间了吗?别把测量命令和读命令黏太紧。 用示波器看下 I2C 时序有没有异常波形,能一眼看出是不是干扰。 有条件换根短点的线或者加个屏蔽,看数据漂不漂。 实在不行可以试着把 I2C 时钟调低一些,看读数会不会更稳。 建议多读几次做个均值或者中值滤波,去掉偶发尖刺。 IIC的频率多高?PCBlayout很关键,会影响通信速率和质量。 电源是否稳定? 建议对传感器进行两点校准。 上拉电阻值不当或总线长度过长可能导致信号衰减。 检查传感器焊接是否牢固,无虚焊或短路。 建议信号线采用屏蔽线或双绞线。 可能是未启用CRC校验或未过滤异常数据。
页:
[1]