python cmbus2块读取从EEPROM上的第二个存储器地址开始

时间:2018-04-05 16:41:29

标签: smbus

我正在与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 - 即使这是我在文档中读到的内容。我做错了什么?

感谢您提供的任何指示

0 个答案:

没有答案