• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >嵌入式开发 > linux下的I2C驱动如何管理多个相同的设备,设备地址不同

linux下的I2C驱动如何管理多个相同的设备,设备地址不同

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-05

佚名通过本文主要向大家介绍了linux i2c设备驱动,linux i2c驱动,linux gpio模拟i2c,linux i2c,linux i2c读写等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题:linux 下的I2C驱动如何管理多个相同的设备,设备地址不同
描述:

I2C,一个驱动管理多个设备

使用linux提供的I2C的框架,通过id来匹配设备。
如何管理多个相同的设备,设备地址不同

static int pca9548_probe(struct i2c_client *client, const struct i2c_device_id *id)
{
int err;
if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) 
{
err = -EPFNOSUPPORT;
goto err_out;
}
err = sysfs_create_group(&client->dev.kobj, &attr_group);
if (err)
kobject_put(&client->dev.kobj);
err_out:
return err;
}
static int pca9548_remove(struct i2c_client *client)
{
sysfs_create_group(&client->dev.kobj, &attr_group);
return 0;
}
static const struct i2c_device_id pca9548_id[] = {
{"pca9548", 1},
{}
};
MODULE_DEVICE_TABLE(i2c, pca9548_id);
static struct i2c_driver pca9548_driver = {
.driver = 
{
.name  = "pca9548",
.owner = THIS_MODULE,
},
.probe = pca9548_probe,
.remove = pca9548_remove,
.id_table = pca9548_id,
};
static int __init pca9548_init(void)
{
return i2c_add_driver(&pca9548_driver);
}
module_init(pca9548_init);
static void __exit pca9548_exit(void)
{
i2c_del_driver(&pca9548_driver);
}
module_exit(pca9548_exit)


解决方案1:

管理多个设备?这个完全就是i2c协议定义中的。从设备是发了自己的地址了才会回信息的,这个就好比班上老师点名回答问题一样样的。本来就可以管理了的。

解决方案2:

驱动程序可能不需要做太多工作。
三个设备接入系统之后,I2C总线会创建3个不同的Node,然后,你的驱动程序就会被加载。最后结果是,每个设备都有自己的驱动程序实例,互相之间不会有干扰和依赖。


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 请问Linux下I2C设备驱动该如何写?
  • LINUX驱动中,两个从设备的I2C地址冲突如何解决?
  • linux下的I2C驱动如何管理多个相同的设备,设备地址不同

相关文章

  • 2017-06-05 请问是否有什么工具软件可以随时抓取PCMCIA接口的数据
  • 2017-06-05 如何读到扫描仪的特征序列号?
  • 2017-06-05 TCPMP可以锁定GDI吗?
  • 2017-06-05 S12X全速执行Flash擦除和写入指令时会报错
  • 2017-06-05 关于《计算机组成与设计》中单周期实现的疑问
  • 2017-06-05 怎样优化Pentium系列处理器的代码ZZ
  • 2017-06-05 用vc编程序,要从中断读数据,不会
  • 2017-06-05 verilog如何用一个时钟的上升沿去启动一个计时器
  • 2017-06-05 求教uC-GUI-FontConvert-Demo的用法
  • 2017-06-05 怎么给外设分配空间,能访问外设地址?(急)

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • Vxworks69bootrom如何加载bin文件
    • ESP8266做为服务器发送图片
    • 关于温湿度变送器数据接收问题
    • 为什么能够修改mac地址?
    • 如何覆盖已经在使用的driver文件?
    • 51单片机中ADC0808进行模数转换
    • wince无法连接设备?
    • 关于模拟器件信号与数字器件信号的关系问题(或数字地与模拟地的关系)
    • xpsp2下安装softice的问题。。。
    • 初学者的两个问题(谢谢各位回答)

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有