最后的话
最近很多小伙伴找我要Linux学习资料,于是我翻箱倒柜,整理了一些优质资源,涵盖视频、电子书、PPT等共享给大家!
资料预览
给大家整理的视频资料:
给大家整理的电子书资料:
如果本文对你有帮助,欢迎点赞、收藏、转发给朋友,让我有持续创作的动力!
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
u32 (*functionality) (struct i2c_adapter *);
#if IS_ENABLED(CONFIG_I2C_SLAVE)
int (*reg_slave)(struct i2c_client *client);
int (*unreg_slave)(struct i2c_client *client);
#endif
};
-
对应一套具体的通信方法
-
master_xfer:产生I2C通信时序
struct i2c_client
include/linux/i2c.h
struct i2c_client {
unsigned short flags; /* div., see below /
unsigned short addr; / chip address - NOTE: 7bit */
char name[I2C_NAME_SIZE];
struct i2c_adapter adapter; / the adapter we sit on /
struct device dev; / the device structure /
int init_irq; / irq set at initialization /
int irq; / irq issued by device /
struct list_head detected;
#if IS_ENABLED(CONFIG_I2C_SLAVE)
i2c_slave_cb_t slave_cb; / callback for slave mode */
#endif
};
- addr:i2c设备地址
struct i2c_driver
include/linux/i2c.h