amoBBS 阿莫电子论坛

 找回密码
 注册
搜索
bottom↓
查看: 116|回复: 1

求助smbus访问i2c一次性读取2byte数据如何实现

[复制链接]
发表于 2019-9-24 16:51:19 | 显示全部楼层 |阅读模式
100莫元
问个问题,由于我现在用的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一次性读取两个数据呢

 楼主| 发表于 2019-9-24 22:31:21 | 显示全部楼层
解决了,具体代码如下:
#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)
友情提示:标题不合格、重复发帖,将会被封锁ID。详情请参考:论坛通告:封锁ID、获得注册邀请码、恢复被封ID、投诉必读
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|阿莫电子论坛(原ourAVR/ourDEV) ( 公安备案:44190002001997(交互式论坛) 工信部备案:粤ICP备09047143号 )

GMT+8, 2019-10-14 10:49

阿莫电子论坛, 原"中国电子开发网"

© 2004-2018 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表