这将是我第一次提问。首先,我只是一名程序员,我对电子产品知之甚少。
我试图通过i2c与MCP9880温度传感器进行通信,但我在'真实'之间得到了奇怪的读数,输出看起来像这样(十进制):
0 29
255 255
128 0
0 29
255 255
255 255
这里'真实'讲座将是128 0,但通常我会得到0xff或0x1D,你可以看到。这会发生在读取任何寄存器此外,其他i2c设备正在按预期工作,但我们尝试的许多MCP9808保持相同的行为。这是我用来读取温度寄存器的代码(在bascom中,我被迫使用它:()
I2cstart 'StartI2C.
I2cwbyte Wr_sensor1 'MCP9808 addr.
I2cwbyte &H05 'Temperature register
I2cstart 'StartsI2C.
I2cwbyte Rd_sensor1 'MCP9808 addr
I2crbyte Temp_1621 , Ack 'Read first byte
I2crbyte Temp_1621_dec , Nack 'Read second byte
I2cstop
地址被检查并且正确,我认为代码应该是正确的。我一直说这是一个电子问题,但一直说他们检查过,一切都很好。
提前致谢。
PS:这是数据表http://ww1.microchip.com/downloads/en/DeviceDoc/25095A.pdf
的链接答案 0 :(得分:0)
好的,我找到了答案。进行进一步的测试,设备就像是一直重置自己一样。我怀疑微小的电压下降,所以我研究了这个话题,插上了一个电容器,就是这样!
我希望这可以帮助某人:)