一、master_xfer,以及i2c_msg标志位
其实抛开子系编本身其它部份,实现I2C的主要作用代码就是algorithm里的master_xfer方法。这个方法就是我们无操作系统时的的I2C读写函数(它用参数来区分读和写)。分析这些代码,最好是读内核的i2c-algo-bit.c文件,这个文件就是用模拟的方法来实现I2C总线,因为不和其它I2C控制芯片相关,所以比较好理解。i2c-algo-bit.c其中的master_xfer函数bit_xfer函数如下:
其实也并不复杂
1)i2c_start函数发start信号
2)i2c_repstart函数发重复start信号
3)bit_doAddress函数写器件地址
4)readbytes函数读N字节
5)writebytes函数写N字节
其中的每一个函数都不复杂,都是设置或读取scl和sda线。
bit_xfer函数参数只要是i2c_msg序列msgs。这个结构请看

本文详细介绍了Linux I2C驱动中master_xfer方法和i2c_msg标志位,如I2C_M_IGNORE_NAK、I2C_M_NOSTART等,分析了它们的作用和应用场景,并探讨了在不同操作中的使用注意事项,特别是与器件地址和读写操作的关系。
最低0.47元/天 解锁文章
2455

被折叠的 条评论
为什么被折叠?



