Linux kernel 通过SMBus访问/监控电池状态

Linux kernel 通过SMBus访问/监控电池状态,linux-kernel,usb,linux-device-driver,power-management,i2c,Linux Kernel,Usb,Linux Device Driver,Power Management,I2c,我目前正试图通过SMBus监控我的电池状态 我有一个电池和一个控制板,不断输出电池状态 然后,该控制板通过I2C-USB模块连接到我的主板 我需要编写一个程序来识别SMBus连接并将电池状态传输给用户 在处理智能电池和I2C/SMBus时,我是一个初学者,我对如何处理这个问题有些迷茫 如有任何建议,将不胜感激。谢谢。你的问题有点欠缺。什么样的I2C-USB模块?或者更确切地说,它是否附带Linux驱动程序?如果是这样的话,你可能就不需要写了。一个应用程序就可以了。您可以阅读有关I2C和SMBus

我目前正试图通过SMBus监控我的电池状态

我有一个电池和一个控制板,不断输出电池状态

然后,该控制板通过I2C-USB模块连接到我的主板

我需要编写一个程序来识别SMBus连接并将电池状态传输给用户

在处理智能电池和I2C/SMBus时,我是一个初学者,我对如何处理这个问题有些迷茫


如有任何建议,将不胜感激。谢谢。

你的问题有点欠缺。什么样的I2C-USB模块?或者更确切地说,它是否附带Linux驱动程序?如果是这样的话,你可能就不需要写了。一个应用程序就可以了。您可以阅读有关I2C和SMBus的更多信息

基本上,您需要的是控制板的I2C地址(一个字节)。当您拥有地址时,您(作为主机)使用其地址通过I2C总线向控制板发出读取命令并读取响应。如果有I2C-USB模块的驱动程序,这应该足够简单。插入设备并打开()设备(/dev/[i2c usb name],其中[i2c usb name]是设备的名称)。然后按照《驱动程序实现者指南》中的说明在该设备上设置和发送数据(通常使用read()/write()或ioctl())。下面是一些关于从用户空间使用I2C的附加信息:(在左侧菜单中选择主题)

如果您必须自己编写驱动程序,Linux设备驱动程序初学者的第一站是。读一下,读起来很愉快