谁用fun域名做网站了,网站如何编辑,招工网,公司制作网站价格I2C系统的重要结构体
参考资料#xff1a;
Linux驱动程序: drivers/i2c/i2c-dev.cI2CTools: https://mirrors.edge.kernel.org/pub/software/utils/i2c-tools/
1. I2C硬件框架 2. I2C传输协议 3. Linux软件框架 4. 重要结构体
使用一句话概括I2C传输#xff1a;APP通过I2…I2C系统的重要结构体
参考资料
Linux驱动程序: drivers/i2c/i2c-dev.cI2CTools: https://mirrors.edge.kernel.org/pub/software/utils/i2c-tools/
1. I2C硬件框架 2. I2C传输协议 3. Linux软件框架 4. 重要结构体
使用一句话概括I2C传输APP通过I2C Controller与I2C Device传输数据。 在Linux中
怎么表示I2C Controller 一个芯片里可能有多个I2C Controller比如第0个、第1个、…… 对于使用者只要确定是第几个I2C Controller即可 使用i2c_adapter表示一个I2C BUS或称为I2C Controller 里面有2个重要的成员 nr第几个I2C BUS(I2C Controller)i2c_algorithm里面有该I2C BUS的传输函数用来收发I2C数据 i2c_adapter i2c_algorithm 怎么表示I2C Device 一个I2C Device一定有设备地址它连接在哪个I2C Controller上即对应的i2c_adapter是什么使用i2c_client来表示一个I2C Device 怎么表示要传输的数据 在上面的i2c_algorithm结构体中可以看到要传输的数据被称为i2c_msg i2c_msg i2c_msg中的flags用来表示传输方向bit 0等于I2C_M_RD表示读bit 0等于0表示写 一个i2c_msg要么是读要么是写 举例设备地址为0x50的EEPROM要读取它里面存储地址为0x10的一个字节应该构造几个i2c_msg 要构造2个i2c_msg 第一个i2c_msg表示写操作把要访问的存储地址0x10发给设备 第二个i2c_msg表示读操作 代码如下 u8 data_addr 0x10;i8 data;struct i2c_msg msgs[2];msgs[0].addr 0x50;msgs[0].flags 0;msgs[0].len 1;msgs[0].buf data_addr;msgs[1].addr 0x50;msgs[1].flags I2C_M_RD;msgs[1].len 1;msgs[1].buf data;5. 内核里怎么传输数据
使用一句话概括I2C传输
APP通过I2C Controller与I2C Device传输数据APP通过i2c_adapter与i2c_client传输i2c_msg内核函数i2c_transfer i2c_msg里含有addr所以这个函数里不需要i2c_client