首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 驱动开发 >

基于input子系统显示鼠标坐标有关问题

2012-10-10 
基于input子系统显示鼠标坐标问题我代码的目的是显示鼠标坐标大家帮我看看哪有问题。目前的效果是能够在.de

基于input子系统显示鼠标坐标问题
我代码的目的是显示鼠标坐标大家帮我看看哪有问题。
目前的效果是能够在.dev/input/下产生一个eventX文件但该文件不为空。为什么?
#include<linux/input.h>
#include<linux/module.h>
#include<linux/init.h>
#include<linux/interrupt.h>
#include<asm/irq.h>
#include<asm/io.h>
static struct input_dev *mouse_dev;

static int __init mouse_init(void)
{
  int error;

  mouse_dev = input_allocate_device(); /*分配一个设备结构体*/

  if (!mouse_dev) /*判断分配是否成功*/
  {
  printk(KERN_ERR "mouse.c: Not enough memory\n");
  error = -ENOMEM;
  goto err_free_dev;
  }

  set_bit(EV_REL, mouse_dev->evbit);
  set_bit(REL_X, mouse_dev->relbit);
  set_bit(REL_Y, mouse_dev->relbit);
  error = input_register_device(mouse_dev); /*注册一个输入设备*/

  if (error)
  {
  printk(KERN_ERR "mouse.c: Failed to register device\n");
  goto err_free_dev;
  }

  input_report_rel(mouse_dev, REL_X, 0);
  input_report_rel(mouse_dev, REL_Y, 1);
  input_sync(mouse_dev);
  return 0;
err_free_dev: /*以下是错误处理*/
  input_free_device(mouse_dev);
 return error;
}

static void __exit mouse_exit(void) /*卸载函数*/
{
  input_unregister_device(mouse_dev);
  input_free_device(mouse_dev); /*注销按键设备*/
}
module_init(mouse_init);
module_exit(mouse_exit);
MODULE_LICENSE("GPL");


[解决办法]
你的鼠标是什么接口的?

仔细学习系统的HID Input相关的驱动组件,你就会理解了.

热点排行