CubieBoard中文论坛

 找回密码
 立即注册
搜索
热搜: unable
查看: 12376|回复: 7

android 读取I2C接口键盘数据

[复制链接]
发表于 2013-5-29 14:42:33 | 显示全部楼层 |阅读模式
目前有一个门禁用来数据数字的键盘


这种键盘是I2C
之前没有接触过这方面的东西,现在如果将他如我的开发板连接起来的话,我要如何获取键盘输入的值呢?

我看到sys_config1.fex文件中已经将I2C的一些配置都选了
  ;----------------------------------------------------------------------------------
  ;i2c configuration
  ;----------------------------------------------------------------------------------
  [twi0_para]
  twi0_used                = 1
  twi0_scl                 = portB0<2><default><default><default>
  twi0_sda                 = portB1<2><default><default><default>


  [twi1_para]
  twi1_used                = 1
  twi1_scl                 = portB18<2><default><default><default>
  twi1_sda                 = portB19<2><default><default><default>


  [twi2_para]
  twi2_used                = 1
  twi2_scl                 = portB20<2><default><default><default>
  twi2_sda                 = portB21<2><default><default><default>

但是我其他的就不知道如何操作了,比如
内核中要不要配置I2C的什么
init.rc中要不要给设备加权限什么的
应用程序必须要调用JNI吗?

希望哪位看到信息的,知道回复一下,谢谢!


回复

使用道具 举报

 楼主| 发表于 2013-5-31 10:29:19 | 显示全部楼层
  有没有哪位知道的,希望能给点提示,资料!谢谢!
回复 支持 反对

使用道具 举报

发表于 2013-5-31 10:37:37 | 显示全部楼层
f839903061 发表于 2013-5-31 10:29
有没有哪位知道的,希望能给点提示,资料!谢谢!

你把针脚配置成板子上有的针脚
然后连上线, ls /sys/class/i2c* (我不知道路径,可能是在这里)
如果有,i2c另一端发送数据,然后在这里cat i2c下面的某个节点(不知道,你可以贴出来看),看有数据没
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-5-31 15:26:59 | 显示全部楼层
WindLand 发表于 2013-5-31 10:37
你把针脚配置成板子上有的针脚
然后连上线, ls /sys/class/i2c* (我不知道路径,可能是在这里)
如果有 ...

设备节点是/dev/i2c-1
我不管是发数据还是读取数据,前提都得是要能有这个设备,我不插的时候有
/dev/i2c-0
/dev/i2c-1
/dev/i2c-2
插上键盘之后,一个都没有了!串口查看也没有  有关 I2C的字眼,android的app我写了一部分了,就是想测试能不能读一下取数据!现在卡在这了!
回复 支持 反对

使用道具 举报

发表于 2013-5-31 21:15:08 | 显示全部楼层
个人觉得需要重新写底层驱动。。。我就在这么干
回复 支持 反对

使用道具 举报

发表于 2013-6-1 15:42:29 | 显示全部楼层
做同一件事情,可以有不同的分层,主要涉及到i2c设备的处理和android hal层的处理。

i2c设备,也就是你这个键盘,你可以选择给它单独实现一个input驱动,向linux内核上报input事件。接下来的处理就和android上其他的输入事件一样处理,自己定义键值和功能就好了。

你也可以选择不用写驱动,直接裸读i2c数据,自己处理i2c数据。处理i2c数据,可以在应用里直接处理(通过sysfs),也可以实现hal层,编写JNI方法提供Java访问硬件服务接口,再在应用中调用这些接口。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-6-3 11:53:41 | 显示全部楼层
hipboi 发表于 2013-6-1 15:42
做同一件事情,可以有不同的分层,主要涉及到i2c设备的处理和android hal层的处理。

i2c设备,也就是你这 ...

我现在是从网上搜了一个android 调用jni的,不过这方面懂的不是很多!
回复 支持 反对

使用道具 举报

发表于 2013-6-4 13:34:14 | 显示全部楼层
f839903061 发表于 2013-6-3 11:53
我现在是从网上搜了一个android 调用jni的,不过这方面懂的不是很多!

取决于你的需求,如果你只是想用这个当作键盘的话,比如,只输入0-9,+/-等按键的话,建议自己实现一个简单的input设备驱动,然后android层稍微配置一下就可以使用了。如果你需要在应用中对键值做特殊处理,那就要读裸数据了。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|粤ICP备13051116号|cubie.cc---深刻的嵌入式技术讨论社区

GMT+8, 2024-11-23 01:10 , Processed in 0.024982 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2012 Comsenz Inc. | Style by Coxxs

返回顶部