天嵌 ARM开发社区

 找回密码
 注册
查看: 1574|回复: 3

report 到 input 子系统的 响应码值怎么捕获到

[复制链接]
76182504 发表于 2010-8-19 17:39:35 | 显示全部楼层 |阅读模式
看了内核中input_Programming.txt  文档修改了一个按键中断程序。
--------------------------------------------------------------------------
static struct input_dev *button_dev;
static irqreturn_t button_interrupt(int irq ,void *dev_id)
{
input_event(button_dev, EV_KEY, KEY_1, inb(S3C2410_GPG(0)) & 1);
input_sync(button_dev);
//printk( "on--\n");                                                                            //测试中断可以进入
return IRQ_HANDLED;
}
static int __init button_init(void)
{
                       
                                  ...
                       
if (request_irq(IRQ_EINT8, button_interrupt, IRQ_TYPE_EDGE_BOTH, "inputbutton", button_dev)) {
                printk(KERN_ERR "button.c: Can't allocate irq \n");
                return -EBUSY;
        }
button_dev = input_allocate_device();
if (!button_dev) {
  printk(KERN_ERR "button.c: Not enough memory\n");
  error = -ENOMEM;
  goto err_free_irq;
}
button_dev->evbit[0] =  BIT_MASK(EV_KEY);                     
button_dev->keybit[BIT_WORD(KEY_1)] = BIT_MASK(KEY_1);           //事件响应KEY_1 码
button_dev->name = DEVICE_NAME;
  button_dev->id.bustype = BUS_RS232;
  button_dev->id.vendor = 0xDEED;
  button_dev->id.product = 0xBEEF;
button_dev->id.version = 1010;
error = input_register_device(button_dev);
if (error) {
  printk(KERN_ERR "button.c: Failed to register device\n");
  goto err_free_dev;
}
return 0;
err_free_dev:
input_free_device(button_dev);
err_free_irq:
free_irq(IRQ_EINT8, button_interrupt);
return error;
}
static void __exit button_exit(void)
{
        input_unregister_device(button_dev);
free_irq(IRQ_EINT8, button_interrupt);
}
module_init(button_init);
module_exit(button_exit);

--------------------------------------------------------------------------
我使用input_report_key()向input子系统 提交了一个键值码KEY_1(代表数字“2”) 。cat /proc/bus/input/devices 中已经显示
------------------------------------------
I: Bus=0013 Vendor=deed Product=beef Version=03f2
N: Name="Input_button"
P: Phys=
S: Sysfs=/devices/virtual/input/input1
U: Uniq=
H: Handlers=kbd event1
B: EV=3
B: KEY=4
------------------------------------------
但利用cat /dev/input/event1   进行按键测试时显示的是乱码。
请问是不是不能这样捕获键值。
怎样才能正确获得我提交的键值码? 等待。。。。。
亚瑟王 帮忙啊
shufexiu 发表于 2010-8-19 18:33:22 | 显示全部楼层
1# 76182504


那个键值 是ASCII 码还是字符,你要弄清楚
 楼主| 76182504 发表于 2010-8-19 21:27:24 | 显示全部楼层
是 字符  这个 对于利用cat  有区别吗  请教
天嵌_support1 发表于 2010-9-4 19:51:40 | 显示全部楼层
3# 76182504


有阿,cat 显示的是raw
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号-2 )

GMT+8, 2024-9-18 04:26 , Processed in 1.016640 second(s), 19 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表