breeze505 发表于 2012-09-18 15:56

I2C设备数据通信问题

我有个设备挂在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的读吗?
如果不是,请问该如何实现,谢谢!

junze_tianjian 发表于 2012-09-28 15:28

看你如何实现你的驱动了。

i2c 部分有两种,一种是直接写i2c_client的驱动挂到原来的i2c subsystem里去, 然后一般是实现个字符设备的结点来给 user space 来访问, 具体实现的 read/write 决定了你在user space 操作 设备结点的行为。

还有一种是在用户空间下直接操作i2c adapter, 但这种方式需要把 adapter 通过/dev/下的设备文件结点暴露给 user space的程序。

有个网站好象是 lm-sensor.org 有 用户空间直接操作 adapter的代码和例子.
页: [1]
查看完整版本: I2C设备数据通信问题