i2cdump有效,但不是i2cget

use*_*000 6 i2c raspberry-pi

我试图在Raspberry Pi上使用BMP180而不是i2c.

我检测到芯片.我可以拿一个i2cdump,但我不能读出一个字节.

知道我做错了什么吗?

打印:

$ sudo i2cdetect -y 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- -- 77

$ sudo i2cdump -y 1 0x77
No size specified (using byte-data access)
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
00: XX XX XX XX XX 00 XX 00 XX XX XX 00 XX XX 00 XX    XXXXX.X.XXX.XX.X
10: 00 XX XX 00 XX XX 00 XX 00 XX 00 XX 00 XX 00 XX    .XX.XX.X.X.X.X.X
20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
80: a5 94 48 09 2a 27 78 7b 8a 7e 1f 05 fb b0 c7 c2    ??H?*'x{?~??????
90: 82 18 63 d2 4c b8 19 73 00 28 80 00 d1 f6 09 b2    ??c?L??s.(?.????
a0: a5 94 48 09 2a 27 78 7b 8a 7e 1f 05 fb b0 c7 c2    ??H?*'x{?~??????
b0: 82 18 63 d2 4c b8 19 73 00 28 80 00 d1 f6 09 b2    ??c?L??s.(?.????
c0: 00 00 bc 33 00 00 00 00 00 00 00 10 00 00 00 03    ..?3.......?...?
d0: 55 02 06 00 00 00 00 00 00 00 00 00 00 00 00 00    U??.............
e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
f0: 00 00 00 00 00 00 80 00 00 00 00 00 00 00 00 00    ......?.........

$ sudo i2cget -y 1 0x77 0xd0
Error: Read failed
Run Code Online (Sandbox Code Playgroud)

小智 3

您首先必须设置控制寄存器。对于 BME280(我想 BME180 也是如此),必须写:

$ i2cset -y 1 0x76 0xF2 0x01
$ i2cset -y 1 0x76 0xF4 0x25
$ i2cdump -y -r 0xF7-0xFE 1 0x76 c
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
f0:                      6d 72 00 86 68 00 59 bb              mr.?h.Y? 
Run Code Online (Sandbox Code Playgroud)

前 2 个将设置过采样 x1 写入所有通道。第二个另外启动一次转换。