这个驱动是在上一节的最简单的usb驱动基础上增加了输入子系统和usb包的获取和请求。

首先先给出一个稍微简化了一下的usb的鼠标驱动,这里只做了鼠标的三个按键。为了方便验证,这里用鼠标的左键,右键和中间分别作为标准按键的l   s    enter 键。

#include <linux/kernel.h>
#include <linux/slab.h>
#include <linux/module.h>
#include <linux/init.h>
#include <linux/usb/input.h>
#include <linux/hid.h>struct usb_mouse_as_key {struct input_dev *dev;struct usb_device *usbdev;  struct urb *key_urb;int maxp;signed char *data;dma_addr_t data_dma;};static void usb_key_func(struct urb *urb)
{struct usb_mouse_as_key *uk = urb->context;static signed char key_val;int status;//保证鼠标左键的键值有变化再上报if( (key_val & 0x01) != (uk->data[1] & 0x01) ) { input_report_key(uk->dev, KEY_L , uk->data[1] & 0x01 );input_sync(uk->dev);}   if( (key_val & 0x02) != (uk->data[1] & 0x02

从零开始学USB(二十六、usb鼠标驱动驱动实例分析[1]简介)相关推荐

  1. 教妹学Java(二十六):static 关键字解析

    你好呀,我是沉默王二,(目前是)CSDN 周排名前十的博客专家.这是<教妹学 Java>专栏的第二十六篇,今天我们来谈谈 Java 的 static 关键字--什么是静态变量?什么是静态方 ...

  2. 从零开始学Pytorch(十六)之模型微调

    微调 在前面的一些章节中,我们介绍了如何在只有6万张图像的Fashion-MNIST训练数据集上训练模型.我们还描述了学术界当下使用最广泛的大规模图像数据集ImageNet,它有超过1,000万的图像 ...

  3. PX4从放弃到精通(二十六):GPS驱动

  4. 从零开始学java(二十六)--多维数组,多维数组存储表格数据

    从零开始学java(二十六)--多维数组 多维数组 多维数组存储表格数据 多维数组 多维数组可以看成以数组为元素的数组.可以有二维.三维.甚至更多维数组,但是实际开发中用的非常少.最多到二维数组(学习 ...

  5. python仿真搭建_仿真秀学院|从零开始学ANSA二次开发:如何利用Designer搭建窗口,含安装步骤...

    原标题:仿真秀学院|从零开始学ANSA二次开发:如何利用Designer搭建窗口,含安装步骤 作者 | 团长 仿真秀专栏作者 首发 |仿真秀App 导读:大家好,我是团长,是一名CAEer,还是一名C ...

  6. Stduino学习(二十六)水位传感器模块

    37种传感器(二十六)水位传感器模块+Stduino Nano&UNO 本文转载自:http://www.stduino.com/forum.php?mod=viewthread&ti ...

  7. 窗口消息——Windows核心编程学习手札之二十六

    窗口消息 --Windows核心编程学习手札之二十六 Windows允许一个进程至多建立10000个不同类型的用户对象(user object):图符.光标.窗口类.菜单.加速键表等,当一个线程调用一 ...

  8. JavaScript学习(二十六)—事件处理程序的添加与删除

    JavaScript学习(二十六)-事件处理程序的添加与删除 一.什么是事件? 所谓事件就是指用户或页面自身的某些行为,如点击鼠标,敲击键盘都是属于事件. 二.事件处理程序 当事件被触发时会引起某些程 ...

  9. 计算机网络教程网线制作,图吧小白教程 篇二十六:手把手教你自制网线(夹网线水晶头)...

    图吧小白教程 篇二十六:手把手教你自制网线(夹网线水晶头) 2019-11-19 23:07:38 31点赞 309收藏 27评论 创作立场声明:咕咕咕 教程最后还是出了,不过咱现在用啥还是直接网购号 ...

  10. (转)tensorflow入门教程(二十六)人脸识别(上)

    https://blog.csdn.net/rookie_wei/article/details/81676177 1.概述 查看全文 http://www.taodudu.cc/news/show- ...

最新文章

  1. Java 如何实现二维码?
  2. PDF发明者逝世,曾因学生建议转行计算机,享年81岁
  3. 走向.NET架构设计—第四章—业务层分层架构(后篇)
  4. 属性类:Properties
  5. win7锁屏时间怎么设置_电脑锁屏时间怎么设置
  6. js 数组添加n次相同元素_数组中两次出现相同元素之间的最大距离
  7. 经典查找算法及其Python实现
  8. Gitbook/Markdown中插入复杂(合并单元格)的表格
  9. 安装CentOS 6/7
  10. func_ext.php,fsockopen和pfsockopen函数替换
  11. python机器学习 | 入门介绍
  12. 摸头GIF在线生成工具 附源码
  13. linux安装i3wm桌面环境,ArchLinux + i3wm 桌面 Windows10 双系统安装(重点记录)
  14. 夏敏捷 第39本著作《微信小程序游戏开发快速入门到实战》
  15. 历史周期律 多久_什么是“历史周期律”?
  16. Win11自带微软浏览器无法翻译
  17. 在HTML中 怎么一张图片上在放一张图片,css sprites把很多小图集成在一张图片上...
  18. 开放式运动耳机排行榜,排行榜最高的五款骨传导耳机
  19. 程序员 - 段子图片
  20. 软件开发公司的管理方式(上)

热门文章

  1. Ubuntu修改用户权限及修改文件夹所属用户
  2. 单片机控制马达驱动IC的应用
  3. c++17可变参函数模板详解
  4. opengl之glTranslatef()函数和glRotatef()函数和glLoadIdentity()函数
  5. antdesign图片点击放大_点击图片放大特效代码,全屏显示,再点击恢复原状【多种方法】...
  6. [附源码]SSM计算机毕业设计校园爱心支愿管理系统JAVA
  7. vue H5唤醒app
  8. Wear OS手表应用开发教程之-手腕手势-上下甩动手表事件
  9. 下列设备中 微型计算机系统必须具备的是,2015年计算机一级msoffice选择题121道及答案...
  10. 9012三极管引脚图