3

我担心这是一个非常具体的问题。

  • 硬件:Gumstix Overo Fire(ARM Cortex A8)
  • 发行版:Poky(使用 Yocto 项目定制)
  • 内核:3.5.7

我尝试使用/dev/i2c-3< linux/i2c-dev.h>编写一个程序来读取HIH6130 i2c 传感器,但尽管它适用于所有其他 i2c 设备,但它不适用于这个设备。发生这种情况可能是因为阅读协议的特殊性,但无论如何,这不是主题。

我发现这段代码实现了该传感器的驱动程序,它位于所谓的“hwmon”中,它似乎是传感器驱动程序的集合。

成功编译并插入此模块后,我希望在 hwmon 下的某处看到条目湿度1_input,但我没有找到它。


root@overo:/sys# find -name hum*
root@overo:/sys# find -name hih*
./bus/i2c/drivers/hih6130
./module/hih6130
root@overo:/sys# ls ./bus/i2c/drivers/hih6130
bind  module  uevent  unbind
root@overo:/sys# ls ./module/hih6130
coresize  holders   initstate  refcnt    srcversion  uevent
drivers   initsize  notes      sections  taint

我是否必须做其他事情才能读取此传感器?有任何想法吗?

4

1 回答 1

3

我最终使用 i2cget 来阅读它:

$ i2cget -y 3 0x27 0x00

后来作者 Iain Paton 好心给我演示了如何绑定驱动:

$ insmod hih6130.ko
$ echo hih6130 0x27 > /sys/bus/i2c/devices/i2c-3/new_device

在我的设备中,它出现在此目录中:

$ find /sys/ -name humidity*
/sys/devices/platform/omap_i2c.3/i2c-3/3-0027/humidity1_input

在同一目录中还有一个“temp1_input”。

于 2014-06-09T20:03:00.530 回答