HDC3020传感器的奇怪BUG

在使用德州仪器的温湿度传感器时,用户遇到一个奇怪的读取问题,设备在读取温湿度数据后会死机,且数据不一致。经过排查,问题出在CRC校验上。原本官方表示湿度CRC可不读,但用户发现必须读取所有6个Byte(包括两个CRC码)才能使传感器正常工作,这似乎是一个隐藏的使用要求。
摘要由CSDN通过智能技术生成

德州仪器的温湿度传感器,想不到老牌大厂也会有这种低级错误。

这个传感器是I2C总线读写的。

写数据没问题。

读数据就出现了非常奇怪的BUG。

尝试读温湿度数据寄存器,每次上机后只能读几组温湿度数据,然后就死机了,并且,这几组数据还不一致,而且显然是错误的数据。搞得我百思不得其解,没办法,尝试读编号、制造商等数据寄存器,发现完全没问题,抓狂了,搞了大半天,怀疑是初始化时间不够或者数据准备时间不够,反复的改,依然不行。而且,这个传感器的代码和SHT35通用,我用SHT35装上去,可以完美运行,所以我就排除了代码逻辑的问题。

我是按照这个时序读的数据,温度和湿度数据各一个CRC校验码,温度的CRC码是不得不读的,官方给的说法是,可以不读湿度的CRC,相当于一次读5个Byte,一开始CRC校验我没管,只看温湿度数据,然后出了问题,就想干脆把湿度的CRC也一起读回来,看看CRC对不对,谁知道改了代码后,立马就正常了。等于说,这个传感器,你必须读6个Byte,他才能正常运行,太坑了。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值