当前位置: 技术问答>linux和unix
I2C设备数据通信问题
来源: 互联网 发布时间:2017-03-16
本文导语: 我有个设备挂在I2C总线上,系统是linux,想要实现I2C设备与总线的通信,如应用程序写0x1 0x2两个字节到设备,设备回复0x3,0x4。 目前设备驱动已实现读、写接口, 我想问的是,在应用程序端,我通过write(fd, write_buf,2...
我有个设备挂在I2C总线上,系统是linux,想要实现I2C设备与总线的通信,如应用程序写0x1 0x2两个字节到设备,设备回复0x3,0x4。
目前设备驱动已实现读、写接口, 我想问的是,在应用程序端,我通过write(fd, write_buf,2)写完0x1 0x2,然后调用read(fd,read_buf,2), read_buf可以读到0x3 0x4吗?I2C上的数据会pending等待read的读吗?
如果不是,请问该如何实现,谢谢!
目前设备驱动已实现读、写接口, 我想问的是,在应用程序端,我通过write(fd, write_buf,2)写完0x1 0x2,然后调用read(fd,read_buf,2), read_buf可以读到0x3 0x4吗?I2C上的数据会pending等待read的读吗?
如果不是,请问该如何实现,谢谢!
|
i2c的全部操作都是由主设备发起的,放心吧
i2c从设备会一直等待的
i2c从设备会一直等待的
|
目前主流的i2c 地址是7 bits,8bits中的最后一位lsb不算在i2c地址内
|
可能对于较老的内核,2.6.1x是这样,今天居然看到了
|
应该是在7Bit地址的基础上“或”上读写位吧