繁体   English   中英

DHT22 传感器的校验和无效

[英]DHT22 Sensor's checksum not valid

从 DHT22 传感器读取的位如下:

00000001110100010000000011101111111101111

如果我们通过他们给出的公式计算他们的校验和: 在此处输入图片说明

参考: https : //cdn-shop.adafruit.com/datasheets/Digital+humity+and+temperature+sensor+AM2302.pdf

如果将示例中的每个八位字节转换为十进制并将其与最后 8 位(校验和)进行比较 - 它们是相等的。

Binary:      Decimal:
00000001     1     //First  8 bits
11010001     209   //Second 8 bits
00000000     0     //Third  8 bits
11101111     239   //Fourth 8 bits
---------------------------------->
Summed:      449
------------ Not equal ----------->
11000001     193   //Check sum

当转换 16 位湿度和 16 位温度时,它们显示基于其他流行 DHT22 库的正确结果,但校验和无效。

我误解了他们给出的公式。 最后 8 位是指 4 个八位字节总和的最后 8 位:

Binary:                       Decimal:
00000001                      1     //First  8 bits
11010001                      209   //Second 8 bits
00000000                      0     //Third  8 bits
11101111                      239   //Fourth 8 bits
---------------------------------->
Summed:                       449
449 as Binary:                111000001
449's last 8 bits:            11000001
11000001 as decimal:          193
----------------------------- Equal ----------->
11000001                      193   //Check sum

我希望有同样问题的人来解决这个问题,因为我花了数小时的时间尝试找出导致问题的原因。

在他们的示例中,它们的总和也低于 255,甚至更难捕捉到它,因为您不需要删除一点,因为该值不大于 8 位。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM