1

我正在连接 24LC512 和 47C16 EEProm/EERam

我在两个芯片上都存储了从位置 0 开始的多个字节。

在 24LC512 上,我得到了这些结果 - 请注意,当我使用 bus.read_i2c_block_data 执行块读取时,它从第二个内存位置开始。当我将指针重置回 0 并使用 bus.read_byte 读取时,它会读取 0 处的位置并将指针正确地增加 1

>>> bus.write_byte_data(0x54, 0, 0)
>>> bus.read_byte(0x54)
45
>>> bus.write_byte_data(0x54, 0, 0)
>>> bus.read_i2c_block_data(0x54, 0, 6)
[46, 71, 65, 32, 48, 255]
>>> bus.write_byte_data(0x54, 0, 0)
>>> bus.read_byte(0x54)
45
>>> bus.read_byte(0x54)
46
>>> bus.read_byte(0x54)
71
>>> bus.read_byte(0x54)
65
>>> bus.read_byte(0x54)
32
>>> bus.read_byte(0x54)
48

我在 47C16 上得到相同的结果

>>> bus.write_byte_data(0x50, 0, 0)
>>> bus.read_i2c_block_data(0x50, 0, 6)
[46, 71, 70, 32, 49, 255]
>>> bus.write_byte_data(0x50, 0, 0)
>>> bus.read_byte(0x50)
45
>>> 
>>> bus.read_byte(0x50)
46
>>> bus.read_byte(0x50)
71
>>> bus.read_byte(0x50)
70
>>> bus.read_byte(0x50)
32
>>> bus.read_byte(0x50)
49

看来我没有正确使用 read_i2c_block_data - 尽管这是我在文档中读到的。我究竟做错了什么 ??

感谢您提供的任何指示

4

0 回答 0