amobbs.com 阿莫电子技术论坛

标题: 求助smbus访问i2c一次性读取2byte数据如何实现 [打印本页]

作者: qiqirachel    时间: 2019-9-24 16:51
标题: 求助smbus访问i2c一次性读取2byte数据如何实现
问个问题,由于我现在用的ADC(LTC2453)发一次请求会直接回复2byte数据(就是说有address但是没有寄存器,就是发地址,然后会回复两个8位数据)

但是呢,我现在用smbus和smbus2的库

库内的函数有read_block_data(0x14, 2)
出来的错误是这样的:
ioctl(self.fd, I2C_SMBUS, msg)
OSError: [Errno 121] Remote I/O error

或者用i2c_msg.read(0x14, 2)
错误是:i2c_msg(20,1,b'\x00\x00')

求助,那我怎么才能用smbus一次性读取两个数据呢
作者: qiqirachel    时间: 2019-9-24 22:31
解决了,具体代码如下:
#python file

from smbus2 import SMBus, i2c_msg

bus = SMBus(1)
address = 0x14

msg = i2c_msg.read(address, 2)   #read two byte from address.
b = bus.i2c_rdwr(msg)

data = list(msg)

print(data)




欢迎光临 amobbs.com 阿莫电子技术论坛 (https://www.amobbs.com/) Powered by Discuz! X3.4